为什么我的 xlsxwriter 条件格式不起作用?
Why is my xlsxwriter conditional formatting not working?
我在名为 FirstName 和 LastName 的数据框中有两列。
如果姓氏中的任何单元格不是空白,我需要将名字列中任何单元格文本的字体颜色设置为红色。
writer = pd.ExcelWriter(fileName, engine='xlsxwriter')
df.to_excel(writer,'Sheet1', index_label=None, index=False)
workbook = writer.book
redFont = workbook.add_format({'font_color': '#9C0006'})
worksheet = writer.sheets['Sheet1']
worksheet.conditional_format(1, 0, 9999999, 0,
{'type': 'formula',
'criteria': '=ISBLANK($B1)',
'format': redFont})
writer.save()
我没有收到错误,但字体颜色没有改变。我不知道我做错了什么。有什么想法吗?
谢谢!
代码中有几个小错误:范围大于 Excel 允许的最大范围(因此 XlsxWriter 拒绝条件格式)并且如果范围从单元格 [=11] 开始=] 您应该使用参考单元格 $B2
应用条件格式。另外我认为应该反转逻辑以匹配非空白的单元格
应该是这样的:
import pandas as pd
fileName = 'test.xlsx'
df = pd.DataFrame({'FirstName': ['Anna', 'Bob', 'Cian', 'Dora'],
'LastName': ['Aran', '', '', 'Dodd']})
writer = pd.ExcelWriter(fileName, engine='xlsxwriter')
df.to_excel(writer, 'Sheet1', index_label=None, index=False)
workbook = writer.book
redFont = workbook.add_format({'font_color': '#9C0006'})
worksheet = writer.sheets['Sheet1']
worksheet.conditional_format(1, 0, 1048575, 0,
{'type': 'formula',
'criteria': '=ISBLANK($B2)=FALSE',
'format': redFont})
writer.save()
输出:
我在名为 FirstName 和 LastName 的数据框中有两列。
如果姓氏中的任何单元格不是空白,我需要将名字列中任何单元格文本的字体颜色设置为红色。
writer = pd.ExcelWriter(fileName, engine='xlsxwriter')
df.to_excel(writer,'Sheet1', index_label=None, index=False)
workbook = writer.book
redFont = workbook.add_format({'font_color': '#9C0006'})
worksheet = writer.sheets['Sheet1']
worksheet.conditional_format(1, 0, 9999999, 0,
{'type': 'formula',
'criteria': '=ISBLANK($B1)',
'format': redFont})
writer.save()
我没有收到错误,但字体颜色没有改变。我不知道我做错了什么。有什么想法吗?
谢谢!
代码中有几个小错误:范围大于 Excel 允许的最大范围(因此 XlsxWriter 拒绝条件格式)并且如果范围从单元格 [=11] 开始=] 您应该使用参考单元格 $B2
应用条件格式。另外我认为应该反转逻辑以匹配非空白的单元格
应该是这样的:
import pandas as pd
fileName = 'test.xlsx'
df = pd.DataFrame({'FirstName': ['Anna', 'Bob', 'Cian', 'Dora'],
'LastName': ['Aran', '', '', 'Dodd']})
writer = pd.ExcelWriter(fileName, engine='xlsxwriter')
df.to_excel(writer, 'Sheet1', index_label=None, index=False)
workbook = writer.book
redFont = workbook.add_format({'font_color': '#9C0006'})
worksheet = writer.sheets['Sheet1']
worksheet.conditional_format(1, 0, 1048575, 0,
{'type': 'formula',
'criteria': '=ISBLANK($B2)=FALSE',
'format': redFont})
writer.save()
输出: