簡體   English   中英

為什么我的 xlsxwriter 條件格式不起作用?

[英]Why is my xlsxwriter conditional formatting not working?

我在 dataframe 中有兩列名為 FirstName 和 LastName。

如果 LastName 中的任何單元格為空,我需要將 FirstName 列中任何單元格文本的字體顏色設置為紅色。

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 拒絕條件格式)並且如果范圍從單元格A2開始,您應該使用參考單元格$B2應用條件格式$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()

Output :

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM