使用Python修改Excel字体颜色报错:Colors must be aRGB hex values
解决openpyxl设置颜色时的ValueError问题
错误原因
openpyxl设置样式颜色时,要求使用8位aRGB十六进制值(前两位为透明度,FF表示完全不透明),而你用的#4F81BD是6位RGB格式,缺少透明度通道,因此触发ValueError: Colors must be aRGB hex values错误。
解决步骤
转换颜色格式
- 填充色
#4F81BD:去掉#号,在前面添加FF(完全不透明),得到FF4F81BD - 文本白色:使用完全不透明的aRGB值
FFFFFFFF(部分场景兼容6位FFFFFF,但严格遵循要求建议用8位)
- 填充色
修正后的代码示例
from openpyxl import load_workbook from openpyxl.styles import Font, PatternFill # 加载目标Excel文件,指定工作表 wb = load_workbook("你的文件路径.xlsx") ws = wb["目标工作表名称"] # 定义填充样式(aRGB格式) fill_style = PatternFill(start_color="FF4F81BD", end_color="FF4F81BD", fill_type="solid") # 定义字体样式(白色文本,aRGB格式) white_font = Font(color="FFFFFFFF") # 遍历首行所有单元格应用样式 for cell in ws[1]: cell.fill = fill_style cell.font = white_font # 保存修改后的文件 wb.save("修改后的文件路径.xlsx")
注意事项
- 颜色值不要带
#号,直接传入纯十六进制字符串 - 透明度取值范围为
00(完全透明)到FF(完全不透明),可根据需求调整
内容的提问来源于stack exchange,提问作者user3044949
相关产品推荐
相关产品推荐

