html 的 openpyxl 单元格颜色读取
openpyxl cell color reading for html
我正在使用 openpyxl 读取 xlsx 文件并将其内容呈现给 html。但有时单元格颜色(我已经尝试过 bgcolor 和 start_color)只返回整数。这是我的代码:
text = "<tr>"
for j in range(0,last_col_index):
colorvalue = str(row[j].fill.start_color.value)[2:] #ARGB to RGB
color = '#' + colorvalue if colorvalue != '000000' else '#FFFFFF'
text += ('<td bgcolor="{}" >{}</td>').format(color,str(row[j].value))
text+="</tr>"
这里我省略了两个前导字符,因为openpyxl的颜色格式是ARGB。 #a9d18e color row[j].fill.bgColor.value 返回 64,所以 HTML 背景变成黑色。如何正确地将 openpyxl 单元格颜色转换为简单的 HTML 颜色?
这是因为颜色是索引颜色:该格式允许使用 RGB、色调和索引指定颜色。您可以使用 type
属性找出哪个。我们过去常常保留 OOXML 标准中定义的索引的 aRGB 值列表,但定义不正确,并且在任何情况下都可能因客户端而异。
我正在使用 openpyxl 读取 xlsx 文件并将其内容呈现给 html。但有时单元格颜色(我已经尝试过 bgcolor 和 start_color)只返回整数。这是我的代码:
text = "<tr>"
for j in range(0,last_col_index):
colorvalue = str(row[j].fill.start_color.value)[2:] #ARGB to RGB
color = '#' + colorvalue if colorvalue != '000000' else '#FFFFFF'
text += ('<td bgcolor="{}" >{}</td>').format(color,str(row[j].value))
text+="</tr>"
这里我省略了两个前导字符,因为openpyxl的颜色格式是ARGB。 #a9d18e color row[j].fill.bgColor.value 返回 64,所以 HTML 背景变成黑色。如何正确地将 openpyxl 单元格颜色转换为简单的 HTML 颜色?
这是因为颜色是索引颜色:该格式允许使用 RGB、色调和索引指定颜色。您可以使用 type
属性找出哪个。我们过去常常保留 OOXML 标准中定义的索引的 aRGB 值列表,但定义不正确,并且在任何情况下都可能因客户端而异。