You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

使用openpyxl程序化更新Excel表格范围及条件格式时的异常问题求助

使用openpyxl程序化更新Excel表格范围及条件格式时的异常问题求助

各位好,我现在在用Python的openpyxl库处理一个带表格和条件格式的Excel文件,遇到了棘手的问题,想请大家帮忙分析下。

我的需求很明确:

  • 把现有表格的范围扩展,新增一列进去
  • 新增的列要沿用原表格的预设样式
  • 原本应用在特定范围的三色刻度条件格式,也要覆盖到扩展后的整个区域

先给大家看下初始的Excel文件状态:
初始Excel表格状态

我写的代码如下:

import openpyxl
from openpyxl.formatting.formatting import ConditionalFormattingList
from openpyxl.formatting.rule import ColorScaleRule
     
path = "test_colors.xlsx"
wb = openpyxl.load_workbook(path)    
sheet = wb["tab1"]
  
sheet.tables["tab1_table"].ref = "A1:D4"

new_rule_range = "A2:D4"
rule = ColorScaleRule(start_type='min', start_color='00FF00',    
                      mid_type='percentile', mid_value=50, mid_color='FFFF00',    
                      end_type='max', end_color='AA4A44')         

sheet.conditional_formatting=ConditionalFormattingList()    
sheet.conditional_formatting.add(new_rule_range, rule)
    
wb.save(path)    
wb.close()

但运行这段代码后,打开Excel文件会弹出一个警告弹窗:
Excel警告弹窗

如果我点击“是”确认修复,最后得到的表格会丢失原本的表格样式,只有条件格式生效,效果如下:
处理后的表格状态

有没有大佬能帮我找出问题出在哪,以及怎么解决这个问题呀?

备注:内容来源于stack exchange,提问作者Josal

火山引擎 最新活动