python-2.7 - Python:向 Excel 中添加“containsText”类型的条件格式
问题描述
我正在尝试在 Python 2.7 中使用 openpyxl (2.5.4) 将条件格式(包含管道字符的突出显示单元格)添加到 Excel。我尝试了许多代码变体,如下所示。都没有奏效。你能指出错误在哪里吗?
import openpyxl
from openpyxl import formatting, styles, Workbook
wb = openpyxl.load_workbook('export.xlsx')
sheet = wb['all']
red_text = Font(color='9C0006')
red_fill = PatternFill(bgColor='FFC7CE')
变体 1 - 代码
sheet.conditional_formatting.add('A1:E4', rule(type='containsText', operator='containsText', text='|', fill=red_fill, font=red_text))
变体 1 - 错误
NameError: name 'rule' is not defined
变体 2 - 代码
sheet.conditional_formatting.add('A1:E4', CellIsRule(type='containsText', operator='containsText', text='|', fill=red_fill, font=red_text))
变体 2 - 错误
TypeError: CellIsRule() got an unexpected keyword argument 'type'
变体 3 - 代码
sheet.conditional_formatting.add('A1:E4', formatting.rule.CellIsRule(type='containsText', operator='containsText', text='|', fill=red_fill, font=red_text))
变体 3 - 错误
TypeError: CellIsRule() got an unexpected keyword argument 'type'
变体 4 - 代码
sheet.conditional_formatting.add('A1:E4', formatting.rule.CellIsRule(operator='containsText', text='|', fill=red_fill, font=red_text))
变体 4 - 错误
TypeError: CellIsRule() got an unexpected keyword argument 'text'
解决方案
尝试以下操作:
from openpyxl.styles.differential import DifferentialStyle
from openpyxl import styles
from openpyxl.formatting.rule import Rule
red_colour = 'ffc7ce'
red_colour_font = '9c0103'
red_font = styles.Font(size=14, bold=True, color=red_colour_font)
red_fill = styles.PatternFill(start_color=red_colour, end_color=red_colour, fill_type='solid')
rule = Rule(type='containsText', text='|', stopIfTrue=True)
rule.dxf = DifferentialStyle(font=red_font, border=None, fill=red_fill)
ws.conditional_formatting.add('A1:E4', rule)
这是使用 openpyxl 3.0 版。
这就是我创建 textContains 条件格式规则的方式。
推荐阅读
- bash - 我的 bash 没有找到用 pip 安装的柯南 C/C++ 包管理器
- sql - 使用连接的先前值更新列?
- python - 有没有办法停止程序的一部分而不是整个程序 python
- ruby-on-rails - Ruby on Rails 无法保存用 Nokogiri 抓取的图像 src
- javascript - 停止滑块以将其替换为图像
- redux - 如何解决动作类型减速器的问题
- python - 为什么我的 Python VLC 事件管理器不起作用?
- python - 当我修改嵌套字典的 json 中的值时,它正在删除其他字典
- php - Symfony4:路由引用另一个页面
- rest - 如何跟踪 approot 下特定 OneDrive 文件夹的更改?