openpyxl不能获取到excel单元格颜色和不能给单元格添加颜色

1.部分填充色,反馈value must be of type class str,无法获取到填充的颜色,excel里查到的是#1F4E78
import openpyxl
sh.cell(1,1)fill.fgColor.rgb
FFFF00000可以获取到
1.设置了颜色的RGB值,但是没有给单元格添加上颜色
比如白色00000000
代码
Font(color='00000000')
pattern_fill=PatternFill(fgColor=00FFC0CB)

图片放不上来இдஇ; )

我试了,没啥问题呀
给段查看颜色及改颜色给你看看 , 例子是修改 B2 单元格

from openpyxl import load_workbook
from openpyxl.styles import Font, Border, Side, PatternFill, colors, Alignment

red_fill = PatternFill("solid", fgColor="FF0000")
xlsfile = "data/data.xlsx"
wb = load_workbook(xlsfile)
ws = wb[wb.sheetnames[0]]

print("fgColor = ", ws['B2'].fill.fgColor.rgb)
print("bgColor = ", ws['B2'].fill.bgColor.rgb)
ws['B2'].fill = red_fill
wb.save(xlsfile)
wb.close()

这是以前的回答
https://ask.csdn.net/questions/7624516

从“value must be of type class str”这个提示看。是你录入的颜色的那个值有问题,不被认为是(合法的颜色)字符串。
该不会你录入的值是"#1F4E78"这个吧。

获取的颜色要是标准色【标准色就是你在excel中设置颜色的时候,颜色面板中切换到标准颜色时设置的色】

截图EXCEL 的内容
截图代码跑的结果。

from openpyxl import load_workbook
import openpyxl

print(openpyxl.__version__)
excel_file = dirname + '\\data1.xlsx'
wb = load_workbook(excel_file, data_only=True)
sh = wb['Sheet2']
for i in range(1, sh.max_row + 1):
    for j in range(1, sh.max_column + 1):
        print(f'row={i}', f'col={j}', f'color={sh.cell(i, j).fill.fgColor.rgb}', end = ' ')
    print()


'''--result
3.0.9
row=1 col=1 color=FFFFC125 row=1 col=2 color=FF336699 
row=2 col=1 color=FFFFC125 row=2 col=2 color=FF66BE6A 
row=3 col=1 color=FFFFC125 row=3 col=2 color=FFFFC125 
row=4 col=1 color=00000000 row=4 col=2 color=00000000 
row=5 col=1 color=00000000 row=5 col=2 color=00000000 
row=6 col=1 color=00000000 row=6 col=2 color=00000000 
row=7 col=1 color=FFFFC125 row=7 col=2 color=FFFFC125 
row=8 col=1 color=FFFFC125 row=8 col=2 color=FFFFC125 
row=9 col=1 color=00000000 row=9 col=2 color=00000000 
row=10 col=1 color=FF74CEAA row=10 col=2 color=00000000 
row=11 col=1 color=00000000 row=11 col=2 color=00000000 
row=12 col=1 color=00000000 row=12 col=2 color=00000000 
row=13 col=1 color=FFFFC125 row=13 col=2 color=FFFFC125 

'''


img

img

img

img

img