有没有一种方法可以基于同一行的另一列中的单元格来格式化一列中的单元格? (openpyxl)

时间:2020-10-07 22:05:56

标签: python excel pandas openpyxl

我有一本Excel工作簿,其工作表如下所示:

Label    Measure    Value
A        Cost       -23.12
A        Percentage 0.357
B        Cost       48.1
C        Location   NY
C        Cost       13

我要做的是根据Value列中的相应单元格来格式化Measure列中的单元格。在这种情况下,如果单元格读取“ Cost”,则在同一行和Value列中的单元格应显示为“ $ 23.12”(应用货币格式。)Value单元格的格式为Measure是“百分比”,对于“位置”,为文本。

最终结果如下:

Label    Measure    Value
A        Cost       $ -23.12
A        Percentage 35.7 %
B        Cost       $ 48.10
C        Location   NY
C        Cost       $ 13.00

我正在使用熊猫来创建此数据。在导出到Excel之前,我只需在DataFrame中进行这些更改。但是,我还需要进行另一种格式化。我想突出显示Value列中的所有数字单元格-如果为正,则为绿色,如果为负,则为红色。但我不想触摸与“位置”相对应的单元格。

我可以做这样的事情:

workbook[sheet].conditional_formatting.add('C2:C6', CellIsRule(operator='greaterThan', formula=['0'], fill=green_fill, font=green_font))
workbook[sheet].conditional_formatting.add('C2:C6', CellIsRule(operator='lessThan', formula=['0'], fill=red_fill, font=red_font))

这对C行中的所有单元格都有效,但是如何对我感兴趣的特定单元格子集执行此操作?

0 个答案:

没有答案