使用 openpyxl,有没有办法检查 excel 文件的单元格是否具有条件格式?

Using openpyxl, Is there a way to check if a cell of an excel file has conditional formatting?

我可以在工作表中找到可用的条件格式列表。但是,如何确定单元格是否具有任何条件格式?

from openpyxl import load_workbook
ws= load_workbook('Path to excel file')
WS=ws.active
cf_rules =[]
for i in WS.conditional_formatting:
       cf_rules.append(i)

for row in WS.iter_rows(): 
    for cell in row: 
         if ( "Check for formatting"): 
             print("Formatting Detected")

您可以遍历 workbook.conditional_formatting,然后检查您的单元格是否包含在条件格式的范围之一中。

为了简单起见,我只检查一个单元格 (A1),如果它包含条件格式。

import openpyxl

wb = openpyxl.load_workbook('Path to file')
ws = wb['my_sheet']
my_cell = wb['A1']

for conditional_formatting in worksheet.conditional_formatting._cf_rules:
    for cell_range in conditional_formatting.cells.ranges:
        if my_cell.coordinate in cell_range:
            print('cell contains a conditional formatting')

这是我找到的唯一解决方案。遗憾的是,它的性能相当慢。