首页 > 解决方案 > Pandas:解析损坏的 .xls 文件

问题描述

我正在使用 pandas 读取 .xls 文件并将表格提取到 df 中。(我可以用 Excel 打开它,但它给了我一个弹出窗口:无法访问 .xls 文件。该文件可能已损坏,位于服务器上没有响应,或只读异常。)。

一般属性其 Microsoft Excel 97-2003 工作表 (.xls)

代码:

import os, sys
import pandas as pd
from os import walk


file_path = os.path.dirname(os.path.abspath(__file__)) 

excels = [pd.read_excel(name) for name in file_path]  

df = [x.parse(x.sheet_names[0], header=None,index_col=None) for x in excels] #Error

df.to_excel("Final.xls", header=False, index=False)

错误:

pd.ExcelFile(name) :

    raise XLRDError('Unsupported format, or corrupt file: ' + msg)
xlrd.biffh.XLRDError: Unsupported format, or corrupt file: Expected BOF record; found b'\xc1\xc5  \t\xc7\xed\xcf'

or  (with rea_html)
  File "C:\ProgramData\Anaconda3\lib\site-packages\pandas\io\html.py", line 545, in _parse_tables
    raise ValueError("No tables found")
ValueError: No tables found

但是,正如错误消息所说,文件的前 8 个字节是 '\xc1\xc5' ...这绝对不是 Excel .xls 格式...

有什么方法可以处理这些文件吗?

标签: pythonexcelpandasdataframe

解决方案


虽然我对这些 Pandas 东西很陌生;我意识到的第一件事是下面有一个语法错误。它应该是“pd.read_excel”。

excels = [pd.read_exel(name) for name in file_path]

我能说的第二件事是;“pd.read_html()”可以读取损坏的 xls 文件。我希望它有所帮助。


推荐阅读