读取xls文件时出现错误,错误如下所述
**XLRDError: Unsupported format, or corrupt file: Expected BOF record; found b'\x08jstanle'**
我尝试了各种解决方案,但最终没有运气,其他工具如xlrd,pyexcel但仍然遇到此错误。希望有人对此问题有解决方案。我也尝试使用pythons io库将其读取为原始文件但问题是文件中有多张纸,需要维护顺序
预先感谢 您身体健康
答案 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])