首页 > 解决方案 > 有没有办法根据同一行的另一列中的单元格来格式化一列中的单元格?(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。在这种情况下,如果单元格显示“成本”,则同一行和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 行中的所有单元格,但我如何才能对我感兴趣的特定单元格子集执行此操作?

标签: pythonexcelpandasopenpyxl

解决方案


推荐阅读