pandas 读取 XLSX 时出现 XML 解析错误
ailx10说:这篇是在2024年4月之前写的,后来又改过。我明明用 pandas 读的是 Excel,报错却说 XML 格式不对,刚看到时确实有点摸不着头脑。后来才顺着文件结构发现,xlsx 本来就是压缩包,工作表藏在 XML 里。再拿 WPS 和 Excel 2016 分别打开,对比一个能读、一个尝试修复的结果,问题才慢慢缩到具体部件和字符上。这篇没有把根因完全钉死,更多是把那次从报错疑惑到理解文件内部结构的路线记下来。有时候排错的第一步,就是承认文件名和里面真正存的东西不是一回事。
使用 pandas.read_excel 读取工作簿时,可能遇到 xml.etree.ElementTree.ParseError: not well-formed (invalid token)。XLSX 是包含多个 XML 部件的 ZIP 容器,因此工作表中的 XML 格式错误可能出现在读取 Excel 文件时。
一次历史排查
原记录中,一个软件能够打开该文件,另一个版本的 Excel 提示工作表 XML 中有非法字符并删除了部分公式。不同程序的容错行为可能不同;某个程序能打开文件,并不证明文件结构完全合法,也不能直接证明 pandas 或其读取引擎存在缺陷。
建议检查步骤
- 先备份原始文件,避免修复操作覆盖唯一副本。
- 记录完整错误、工作表名称、报错行列及相关库版本。
- 在副本上使用可信工具检查或修复工作簿,比较修复前后的单元格与公式;任何自动修复都可能丢失内容。
- 尽可能构造去除敏感信息的最小样本,再核对读取引擎的文档和问题记录。
原实验没有确认非法字符来源或完成修复;不能把其现象当作对某个库的最终归因。
这次没有找到完整根因,就把已试过的路径留下来。能读出来是一个结果,文件是否合规是另一个问题;沿着这条差别继续追,比随手归咎某个库更有方向。
本文摘要与文字整理有 AI 参与。
========================if i have some wrong, please give me a message, thx.========================
浙公网安备 33010602011771号