使用openpyxl程序化更新Excel表格范围及条件格式时的异常问题求助
使用openpyxl程序化更新Excel表格范围及条件格式时的异常问题求助
各位好,我现在在用Python的openpyxl库处理一个带表格和条件格式的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文件会弹出一个警告弹窗:
如果我点击“是”确认修复,最后得到的表格会丢失原本的表格样式,只有条件格式生效,效果如下:
有没有大佬能帮我找出问题出在哪,以及怎么解决这个问题呀?
备注:内容来源于stack exchange,提问作者Josal




