首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何更新Excel条件格式与openpyxl一起应用的单元格范围

如何更新Excel条件格式与openpyxl一起应用的单元格范围
EN

Stack Overflow用户
提问于 2022-05-19 07:43:13
回答 1查看 125关注 0票数 0

我有一个Excel,我想用更新,使用openpyxl更新条件格式。

openpyxl的文档可以在这里找到条件格式:https://openpyxl.readthedocs.io/en/stable/formatting.html .但是,它只指示如何创建条件格式,而不是删除/更新条件格式。

我试图扩展一些规则的范围:我有一个关于范围A4:V4的规则,我想将它更新为A4:V100

如何用openpyxl更新条件格式的范围

谢谢

EN

回答 1

Stack Overflow用户

发布于 2022-05-19 07:43:13

openpyxl中条件格式的当前(3.0.9版)实现如下:

条件格式存储在一个A4:V4)

  • The (带有顺序的字典)

  • 中,键是ConditionalFormatting对象;它有一个属性sqref来引用范围(一个MultiCellRange对象可以很容易地转换成一个看起来像该字典的

  • 值的字符串,它是应用到这个范围

<代码>G 213的规则列表)。

文档清楚地指示ws.conditional_formatting.add(<range>, <rule>)添加规则,但实际上可以像普通字典那样访问和删除规则:

ws.conditional_formatting[<range>]

  • To

  • To access: access:del ws.conditional_formatting[<range>]

更新的一种方法是再次删除和添加(就像您想要更新openpyxl中的表的引用一样)。

加在一起,看起来可能是这样的:

代码语言:javascript
运行
复制
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()

请注意,您可以使用以下列表理解来访问条件格式的所有范围引用:

代码语言:javascript
运行
复制
refs_conditional_formats = [str(c.sqref) for c in ws.conditional_formatting]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72300543

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档