You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用openpyxl加载xlsx文件先后遇TypeError与ValueError求助

解决openpyxl打开带条件格式的XLSX文件报错问题

问题描述

使用openpyxl 3.10版本打开XLSX文件,代码如下:

path = (r'C:\Users\karol\OneDrive\Pulpit\OASIS\*.xlsx')
list_of_files = glob.glob(path)
latest_file = max(list_of_files, key=os.path.getctime)
excel = openpyxl.load_workbook(latest_file)

出现错误:TypeError: expected <class 'openpyxl.worksheet.cell_range.MultiCellRange'>,经排查是文件中的条件格式导致。

降级至openpyxl 2.4.11版本后,又出现错误:ValueError: {0} is not a valid coordinate or range,但代码中并未指定任何坐标或范围。

解决方案

方法1:跳过条件格式加载(推荐,无需降级)

在load_workbook中添加参数,直接跳过条件格式的解析:

excel = openpyxl.load_workbook(latest_file, read_only=True, conditional_formatting=False)
  • read_only=True:以只读模式加载,提升加载速度同时避免部分格式解析冲突
  • conditional_formatting=False:彻底跳过条件格式的解析,从根源解决触发的报错
  • 若仅需读取单元格值而非公式,可额外添加data_only=True参数

方法2:升级到openpyxl最新稳定版

旧版本的条件格式解析存在已知bug,升级到最新稳定版(如3.1.2)可修复部分问题:

pip install --upgrade openpyxl

升级后直接使用原代码加载,若仍报错,结合read_only=True模式尝试。

方法3:清理文件中的异常条件格式

若文件内的条件格式存在无效范围等异常,可手动修复:

  1. 打开目标Excel文件,选中所有工作表
  2. 点击「开始」选项卡 → 「条件格式」→ 「清除规则」→ 「清除整个工作表的规则」
  3. 保存文件后再用openpyxl加载

内容的提问来源于stack exchange,提问作者Karolina Lęcznar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 00:16:07