Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python openpyxl:有没有办法在Excel电子表格中搜索具有特定填充颜色的单元格?_Python_Excel_Python 3.x_Openpyxl - Fatal编程技术网

Python openpyxl:有没有办法在Excel电子表格中搜索具有特定填充颜色的单元格?

Python openpyxl:有没有办法在Excel电子表格中搜索具有特定填充颜色的单元格?,python,excel,python-3.x,openpyxl,Python,Excel,Python 3.x,Openpyxl,我正在尝试读取一个“.xlsx”文件,该文件包含一个表,其中一些单元格具有颜色填充(单元格背景色) 使用“Python 3.4”和“openpyxl 2.5.12”,我试图在“a1”上创建一个虚拟的黄色单元格填充,并保存了该文件,当打开“xlsx”文件时,我可以看到它以黄色突出显示。 但是,当我使用以下条件在电子表格单元格中循环时: if cell.fill == yellowFill: print(cell.value) 我只得到“a1”的值,因为我知道还有其他单元格具有相同的黄色填

我正在尝试读取一个“.xlsx”文件,该文件包含一个表,其中一些单元格具有颜色填充(单元格背景色)

使用“Python 3.4”和“openpyxl 2.5.12”,我试图在“a1”上创建一个虚拟的黄色单元格填充,并保存了该文件,当打开“xlsx”文件时,我可以看到它以黄色突出显示。 但是,当我使用以下条件在电子表格单元格中循环时:

if cell.fill == yellowFill:
    print(cell.value)
我只得到“a1”的值,因为我知道还有其他单元格具有相同的黄色填充

我甚至尝试去Excel的调色板比较虚拟“a1”单元格和其他黄色高亮显示的单元格的填充颜色代码,结果是相同的(红色:255,绿色:255,蓝色:0)

有没有办法只打印出有黄色填充的单元格值

更新:我已尝试查看虚拟高亮显示单元格和原始高亮显示单元格之间的差异:

print(ws['a1'].value)
print(ws['a1'].fill)
print()
print(ws['e5'].value)
print(ws['e5'].fill)
并得到以下输出:

>>> 
1
<openpyxl.styles.fills.PatternFill object>
Parameters:
patternType='solid', fgColor=<openpyxl.styles.colors.Color object>
Parameters:
auto=None, type='rgb', indexed=None, tint=0.0, rgb='00FFFF00', theme=None, 
bgColor=<openpyxl.styles.colors.Color object>
Parameters:
auto=None, type='rgb', indexed=None, tint=0.0, rgb='00FFFF00', theme=None

4
<openpyxl.styles.fills.PatternFill object>
Parameters:
patternType='solid', fgColor=<openpyxl.styles.colors.Color object>
Parameters:
auto=None, type='rgb', indexed=None, tint=0.0, rgb='FFFFFF00', theme=None, 
bgColor=<openpyxl.styles.colors.Color object>
Parameters:
auto=None, type='indexed', indexed=64, tint=0.0, rgb=None, theme=None
>>>    
>
1.
参数:
patternType='solid',fgColor=
参数:
auto=None,type='rgb',index=None,tint=0.0,rgb='00FFFF00',theme=None,
bgColor=
参数:
auto=None,type='rgb',index=None,tint=0.0,rgb='00FFFF00',theme=None
4.
参数:
patternType='solid',fgColor=
参数:
auto=None,type='rgb',index=None,tint=0.0,rgb='ffffff 00',theme=None,
bgColor=
参数:
auto=None,type='index',index=64,tint=0.0,rgb=None,theme=None
>>>    

非常感谢

根据评论中的要求:

尝试:

cell.fill.fgColor.rgb == '00FFFF00'

看起来您需要类似于
cell.fill.fgColor.rgb==“00FFFF00”
的内容
rgb
值不同:
“00FFFF00”
不是
“FFFFFF00”
。比较ForegroundColor的
.fill.fgColor.rgb
。哇……它很管用!万分感谢@Yuca!祝你有美好的一天@stovfl非常感谢,是的,你完全正确。@Yuca请将此作为答案
cell.fill.fgColor.rgb == '00FFFF00'