簡體   English   中英

使用條件識別行后的 Xlsxwriter 條件格式

[英]Xlsxwriter conditional formatting after identifying rows with criteria

下午好,

我試圖用 xlsxwriter 更改條件格式。

我能夠這樣做使用

percent_format = workbook.add_format({'num_format': '0%', 'align': 'center', 'border': 1})

worksheet.conditional_format('B1:J%d' % (number_rows),
                                        {"type": "formula",
                                        "criteria": '=INDIRECT("B"&ROW())="THISROW"',
                                        "format": percent_format 
                                        })  

通過這一步,我可以分配任何正常的格式,如粗體、居中等

但我需要對這些行應用條件格式,如 3 色標等

我想我的問題是如何創建一組單元格范圍,然后在它們上應用 3 顏色條件格式。

謝謝!

編輯1:

添加更多信息:

在此處輸入圖像描述

我想對列中匹配 THISROW 的行應用 3 色條件格式

至 C5:D5 C9:D9 C13:D13

如果你特別想要一個 3 色標,它是

worksheet7.conditional_format('I3:I14', {'type': '3_color_scale',
                                         'min_color': "#C5D9F1",
                                         'mid_color': "#8DB4E3",
                                         'max_color': "#538ED5"})

在此處查看示例: https://xlsxwriter.readthedocs.io/example_conditional_format.html

如果您想要一個更復雜的 output 就像您的公式建議的那樣,那么您做得正確,但您需要重復多次(就像在 Excel 中一樣)。 如果您的公式不起作用,可能是因為 Excel 公式在 Excel 中不起作用。

這個

'=INDIRECT("B"&ROW())="THISROWS"'

是兩個不需要的易失性函數。 如果您不將 $ 放在單元格的地址中,則 position 已經是相對的。 因此,如果你在 B3 開始你的區域並在 F15 結束它,例如,如果你寫

'=B3="THISROWS"'

然后在 B4 中,您代碼中的 B3 將被 B4 替換。 如果您需要它在行中移動而不是在列中移動,請寫入:

'=$B3="THISROWS"'

這不是我打算解決這個問題的方式,而是使用 xlxswriter package .. 但這里我們是 go。

color_format = workbook.add_format({'bold': True, 'color': 'red'})
for i in range(len(df.index)/5):                                        
    worksheet.conditional_format('C{}:D{}'.format(5+4*i,5+4*i), {'type':     'cell',
                                        'criteria': '>=',
                                        'value':    1,
                                        'format':   color_format})

我很慚愧這樣做......現在任何超過1的東西都會變成紅色......

暫無
暫無

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

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