从URL读取XLS文件时,Pandas:XLDR错误

时间:2019-03-15 18:15:41

标签: python pandas data-science pyexcel

读取xls文件时出现错误,错误如下所述

**XLRDError: Unsupported format, or corrupt file: Expected BOF record; found b'\x08jstanle'**

我尝试了各种解决方案,但最终没有运气,其他工具如xlrd,pyexcel但仍然遇到此错误。希望有人对此问题有解决方案。我也尝试使用pythons io库将其读取为原始文件但问题是文件中有多张纸,需要维护顺序

预先感谢 您身体健康

1 个答案:

答案 0 :(得分:2)

有两个可能的原因:

1)。您从源url获得的文件不是作为    与文件扩展名说的文件格式相同

2).XLS文件被加密,如果您明确地应用工作簿     密码,但是如果您使用密码保护某些工作表     元素。因此,甚至可以拥有一个加密的XLS文件     如果您不需要密码就可以打开它。

如果您遇到第一个问题,则有解决方案,请打开工作簿并将其保存为受支持的格式。

file1 = io.open(filename, "r", encoding="utf-8")
data = file1.readlines()
# Creating a workbook object
xldoc = Workbook()
# Adding a sheet to the workbook object
sheet = xldoc.add_sheet("Sheet1", cell_overwrite_ok=True)
# Iterating and saving the data to sheet
for i, row in enumerate(data):
    # Two things are done here
    # Removeing the '\n' which comes while reading the file using io.open
    # Getting the values after splitting using '\t'
    for j, val in enumerate(row.replace('\n', '').split('\t')):
        sheet.write(i, j, val)

# Saving the file as an excel file
xldoc.save('myexcel.xls')

您下载的文件也是html。请使用下面的代码片段验证一个文件。

import pandas as pd
df_list = pd.read_html('filename.xlsx')
df = pd.DataFrame(df_list[0])