我正在尝试用Python编写一个电子表格,它使用条件格式来查找一行中三个单元格中最大的一个,并给它一个绿色填充。我已经能够对两个单元格进行比较了,但是在openpyxl文档中,我看到的关于如何编写公式的信息非常少,关于这个问题的StackOverflow的信息也非常少
对于两个工作正常的单元格,我的代码如下:
sheet.conditional_formatting.add(f'G${row+iter_num}', CellIsRule(operator='greaterThan', \
formula=[f'H${row+iter_num}'], fill=greenfill))
sheet.conditional_formatting.add(f'H${row+iter_num}', CellIsRule(operator='greaterThan', \
formula=[f'G${row+iter_num}'], fill=greenfill))
{row+iter_num}
是必需的,因为它在for循环中使用
为了对更多的单元格进行比较,我尝试将公式更改为包含and
:
sheet.conditional_formatting.add(f'G${row+iter_num}', CellIsRule(operator='greaterThan', \
formula=[f'H${row+iter_num}' and f'I${row+iter_num}'], fill=greenfill))
sheet.conditional_formatting.add(f'H${row+iter_num}', CellIsRule(operator='greaterThan', \
formula=[f'G${row+iter_num}' and f'I${row+iter_num}'], fill=greenfill))
sheet.conditional_formatting.add(f'I${row+iter_num}', CellIsRule(operator='greaterThanOrEqual', \
formula=[f'G${row+iter_num}' and f'H${row+iter_num}'], fill=greenfill))
我不确定在这种情况下使用and
是否合乎逻辑,但正如我所说,文档中的内容很少。我也无法使用任何比较来找出Python中最大的G、H和I,因为它们是由excel函数决定的。对于上图,每行的绿色单元格应该是200、16、82、1890、150(秒)、1025、527、392、150(秒),每行应该只有一个绿色单元格
如果直接在Excel中执行此操作,我将使用公式。您需要将相同的公式放入规则()的公式参数中。下面是一个完整的工作示例:
相关问题 更多 >
编程相关推荐