You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用openpyxl设置Excel单元格背景色触发ValueError问题求助

解决openpyxl设置单元格背景色时的"ValueError: Colors must be aRGB hex values"错误

核心问题

你遇到的错误根源是颜色值格式不符合openpyxl的要求:openpyxl规定aRGB颜色必须是不带#号的8位十六进制字符串,而你代码里的#FFFF6A1F带了#前缀,这会触发格式校验失败。

修正方案

  1. 去掉颜色值的#符号,直接使用8位aRGB字符串(Alpha通道在前,后跟RGB值)
  2. 优先使用start_color和end_color参数(openpyxl新版本推荐的写法),而非旧版的bgColor,避免兼容性问题

修正后的完整代码

from openpyxl import load_workbook
from openpyxl.styles import PatternFill

# 加载目标工作簿
wb = load_workbook('example.xlsx')
# 指定要操作的工作表(这里用活动表,也可以替换成wb['你的工作表名'])
ws = wb.active

# 定义纯色填充样式:注意颜色值不带#
redFill = PatternFill(start_color="FFFF6A1F", end_color="FFFF6A1F", fill_type="solid")
# 应用到A1单元格
ws['A1'].fill = redFill

# 保存修改后的文件
wb.save('example_modified.xlsx')

额外排查点

  • 确认颜色值是8位:aRGB格式必须是8个十六进制字符,比如完全不透明的纯红是FFFF0000(FF=完全不透明,FF0000=RGB红色)
  • 检查工作簿/工作表对象是否正确初始化:原代码中缺少加载工作簿的步骤,实际运行时要确保wb是有效的Workbook或load_workbook返回的对象
  • 若仍报错,可尝试简化颜色值测试,比如用FFFFFFFF(纯白)或FF000000(纯黑)验证是否是颜色值本身的问题

内容的提问来源于stack exchange,提问作者Tomas Eli Olafsson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 19:38:19