如何用Python3的openpyxl获取xlsx/xlsm单元格背景的RGB/aRGB值
问题描述
需要获取xlsx/xlsm文件中单元格背景的RGB或aRGB值,使用openpyxl编写了如下代码:
wb = load_workbook(path) cell = wb["sheet_name"].cell(row=row_number, column=column_number)
执行cell.fill.start_color时,若颜色类型为rgb,可通过cell.fill.start_color.index得到正确aRGB值;但颜色类型为indexed时仅能得到索引值,对照openpyxl官方索引颜色表结果不匹配。尝试过ChatGPT未解决,xlrd因不支持xlsx无法使用,求可行解决方法。
解决方法
可以通过访问工作簿对象的_colors属性,根据索引值获取对应的颜色信息:
wb._colors[cell.fill.start_color.index]
该方法能直接拿到indexed类型对应的实际RGB/aRGB值,解决索引与官方表不匹配的问题。
内容的提问来源于stack exchange,提问作者LCKYN
相关产品推荐
相关产品推荐

