用EXCEL完成Lab颜色模型转RGB颜色模型
1、打开EXCEL,(EXCEL需要启用宏,具体做法请百度),把LAB数据复制到表中,如图所示,第一列是L,第二列是A,第三列是B

2、按下ALT+F11,调出VBA编辑器

3、选中ThisWorkBook,把以下代码复制到编辑器中
Sub 宏1()
endrow = Cells.Find("*", Cells(1, 1), xlValues, xlWhole, xlByRows, xlPrevious).Row '计算最后一个工作表的非空行号
For i = 2 To endrow
Range("d1:G1") = Array("R", "G", "B", "显色")
ARR = LABtoRGB(Cells(i, 1), Cells(i, 2), Cells(i, 3))
Cells(i, 4) = ARR(0)
Cells(i, 5) = ARR(1)
Cells(i, 6) = ARR(2)
Cells(i, 7).Interior.Color = RGB(ARR(0), ARR(1), ARR(2))
Next
End Sub
Public Function LABtoRGB(l, a, b)
Dim fx, fy, fz, rr, gg, bb, r, g, B2 As Double
fy = ((l + 16) / 116) ^ 3
If fy < 0.008856 Then fy = l / 903.3
Y = fy
If fy > 0.008856 Then
fy = fy ^ (1 / 3)
Else
fy = 7.787 * fy + 16 / 116
End If
fx = a / 500 + fy
If fx > 0.206893 Then
X = fx ^ 3
Else
X = (fx - 16 / 116) / 7.787
End If
fz = fy - b / 200
If fz > 0.206893 Then
Z = fz ^ 3
Else
Z = (fz - 16 / 116) / 7.787
End If
X = X * (0.950456 * 255)
Y = Y * 255
Z = Z * (1.088754 * 255)
rr = 3.240479 * X - 1.53715 * Y - 0.498535 * Z
gg = -0.969256 * X + 1.875992 * Y + 0.041556 * Z
bb = 0.055648 * X - 0.204043 * Y + 1.057311 * Z
r = IIf(rr < 0, 0, IIf(rr > 255, 255, rr))
g = IIf(gg < 0, 0, IIf(gg > 255, 255, gg))
B2 = IIf(bb < 0, 0, IIf(bb > 255, 255, bb))
LABtoRGB = Array(r, g, B2)
End Function

4、回到表中,点击视图》查看宏》执行宏

5、结果完成
