【发布时间】:2018-06-17 19:44:34
【问题描述】:
我有大量的 Excel 文件,每个文件都有一列,其中数字被格式化为文本。 Excel 给出错误“此单元格中的数字被格式化为文本或前面带有撇号” - 请参阅第三列,其中单元格有一个绿色三角形。
我的目标是在 Pandas 中打开所有这些文件而无需手动打开每个文件并将列转换为数字。但是,pd.read_excel() 失败并出现以下xlrd 错误:
XLRDError: ZIP file contents not a known type of workbook
不出所料,当我直接使用 xlrd 时:wb = xlrd.open_workbook(filename) 我得到了同样的错误。
我也试过 openpyxl:wb = openpyxl.load_workbook(filename),它给了我这个:
KeyError: "There is no item named 'xl/_rels/workbook.xml.rels' in the archive"
如果我在 excel 中手动将列转换为数字并重新保存工作簿,我确认该文件可由 pandas (xlrd) 和 openpyxl 打开。
有人有什么想法吗?
【问题讨论】:
-
您有机会上传样本吗?我正在尝试产生同样的错误,但没有完全理解。
-
在将 excel 读入数据框时,您基本上必须使用“转换器”。阅读文档 (pandas.pydata.org/pandas-docs/stable/generated/…) 的问题似乎与之前的帖子非常相似。 (stackoverflow.com/questions/32591466/…)。
-
值得注意的是该文件无效,因为它缺少工作簿关系文件。
标签: excel pandas openpyxl xlrd vba