我有一个熊猫数据框,我正在使用to_excel将其导出到Excel文件。所有单元中都有伪随机生成的长度为2的字符串(字母数字或仅数字)。我想将某些单元格的背景设为灰色。每次运行.py文件时,我总是想为完全相同的单元格上色,但是由于单元格的内容基本上是随机的,因此我无法对单元格中的值使用某些条件来对其进行着色。
我查看了xlsx writer documentation on conditional formatting,并尝试将其与this question上的公认答案结合使用。附带说明一下,如果我只复制粘贴已接受答案的第一个代码块,就可以正常运行!
这是我的代码:
df = pd.DataFrame({'Col1': ['A1', 'B2', '3C', '4D', 'E5', '6F', 'G7'],
'Col2': ['00', '01', '02', '03', '04', '05', '06']})
writer = pd.ExcelWriter('shaded.xlsx', engine='xlsxwriter')
df.to_excel(writer, sheet_name='Sheet1')
workbook = writer.book
worksheet = writer.sheets['Sheet1']
shadedFormat = workbook.add_format({'bg_color': 'gray'})
worksheet.conditional_format('B3:B5', {'type': 'text',
'criteria': 'not equal to',
'value': 'longString',
'format': shadedFormat})
writer.save()
python解释器不会返回任何错误,但是当我打开.xlsx文件时,会弹出一个窗口,提示“我们在'shaded.xlsx'中发现了某些内容的问题。是否要我们尝试尽我们所能?”回答“是”后,它会弹出另一个窗口,显示“已修复的部分:/xl/worksheets/sheet1.xml发生XML错误的部分。灾难性故障,第2行,列1267。”并且所有列均无阴影。
我想消除该错误,并将指定的单元格涂成灰色。
谢谢您的帮助/建议!
答案 0 :(得分:1)
错误来自type
和criteria
。
尝试:
type
:“文本” criteria
:“包含” 示例:所有包含“ C3”的单元格都已着色。
worksheet.conditional_format('B3:B5', {'type': 'text',
'criteria': 'containing',
'value': '3C',
'format': shadedFormat})
输出:
更新:
如果要选择一个单元格,可以使用:
worksheet.conditional_format('B3:B5', {'type': 'text',
'criteria': 'containing',
'value': '',
'format': shadedFormat})
输出: