openpyxl加载特定Excel文件失败,报图表分组值不合法错误求助
问题原因分析
从报错信息来看,核心问题出在openpyxl解析Excel文件中的图表分组类型时触发了验证错误:
ValueError: Value must be one of {'standard', 'clustered', 'stacked', 'percentStacked'}
这说明你的Excel文件里存在openpyxl不支持的图表分组格式——大概率是3D类图表的分组类型,比如clustered3D或stacked3D。哪怕你删除了单元格数据,图表的结构配置仍然保存在Excel底层的XML文件中,openpyxl加载时会尝试解析这些配置,从而触发错误。
解决方向与方案
方案1:修复Excel文件中的图表(最彻底)
打开目标Excel文件,按以下操作处理:
- 找到文件内所有图表,检查是否为3D类型(比如3D簇状柱形图、3D堆叠柱形图等)
- 将这些3D图表转换为openpyxl支持的2D类型:右键点击图表 → 更改图表类型 → 选择普通的「簇状柱形图」「堆叠柱形图」等2D选项
- 或者直接删除所有图表,然后重新保存文件
处理完成后再运行你的代码,应该就能正常解析了。
方案2:绕过图表加载(快速读取数据)
如果你只需要读取文件中的单元格数据,不需要操作图表,可以在load_workbook时启用只读模式,这种模式下openpyxl会跳过图表等非数据结构的解析:
import openpyxl # 启用只读模式,data_only=True可读取单元格的计算结果而非公式 book = openpyxl.load_workbook( 'C:/Users/aj200/Documents/GitHub/My-Projects/My-Projects/Active Projects/Automated Corona Virus/Active-Coronavirus-cases.xlsx', read_only=True, data_only=True )
注意:只读模式下无法修改或保存文件,若需要编辑数据,可以读取内容后复制到新创建的工作簿中。
方案3:升级openpyxl版本
旧版本的openpyxl对图表类型的支持有限,尝试升级到最新版,可能已经支持你文件中的图表分组类型:
pip install --upgrade openpyxl
升级完成后再运行原代码测试即可。
内容的提问来源于stack exchange,提问作者Andrey
相关产品推荐
相关产品推荐

