我有一个Excel,我想用更新,使用openpyxl
更新条件格式。
openpyxl
的文档可以在这里找到条件格式:https://openpyxl.readthedocs.io/en/stable/formatting.html .但是,它只指示如何创建条件格式,而不是删除/更新条件格式。
我试图扩展一些规则的范围:我有一个关于范围A4:V4
的规则,我想将它更新为A4:V100
。
如何用openpyxl
更新条件格式的范围
谢谢
发布于 2022-05-19 07:43:13
openpyxl
中条件格式的当前(3.0.9版)实现如下:
条件格式存储在一个A4:V4
)
ConditionalFormatting
对象;它有一个属性sqref
来引用范围(一个MultiCellRange
对象可以很容易地转换成一个看起来像该字典的
<代码>G 213的规则列表)。
文档清楚地指示ws.conditional_formatting.add(<range>, <rule>)
添加规则,但实际上可以像普通字典那样访问和删除规则:
ws.conditional_formatting[<range>]
del ws.conditional_formatting[<range>]
更新的一种方法是再次删除和添加(就像您想要更新openpyxl
中的表的引用一样)。
加在一起,看起来可能是这样的:
import re
from os import startfile
from openpyxl import load_workbook
wb = load_workbook(xlsx)
ws = wb["My Super Worksheet"]
range_cells = "A4:V4"
new_range = "A4:V100"
rules = ws.conditional_formatting[range_cells]
del ws.conditional_formatting[range_cells]
for rule in rules:
ws.conditional_formatting.add(new_range, rule)
wb.save()
请注意,您可以使用以下列表理解来访问条件格式的所有范围引用:
refs_conditional_formats = [str(c.sqref) for c in ws.conditional_formatting]
https://stackoverflow.com/questions/72300543
复制相似问题