文件的格式为 Excel 2 (BIFF2)。
但是,由于它不是由 Excel 创建的,因此似乎与 Excel BIFF2 规范不一致。
对于您显示的文件,WINDOW2 记录不正确。您可以通过获取当前版本来解决此问题xlrd
(0.9.3) 并应用以下补丁:
diff --git a/xlrd/sheet.py b/xlrd/sheet.py
index 36438a0..6d895c4 100644
--- a/xlrd/sheet.py
+++ b/xlrd/sheet.py
@@ -1455,7 +1455,8 @@ class Sheet(BaseObject):
(self.first_visible_rowx, self.first_visible_colx,
self.automatic_grid_line_colour,
) = unpack("<HHB", data[5:10])
- self.gridline_colour_rgb = unpack("<BBB", data[10:13])
+ if data_len > 10:
+ self.gridline_colour_rgb = unpack("<BBB", data[10:13])
self.gridline_colour_index = nearest_colour_index(
self.book.colour_map, self.gridline_colour_rgb, debug=0)
self.cached_page_break_preview_mag_factor = 0 # default (60%)
然后安装此版本的模块或从您的PYTHONPATH
因为 pandas 使用xlrd
读取 Excel 文件。
这仍然会给出代码页警告,但这只是一个警告,您可以使用encoding_override='ascii'
(或者任何正确的编码,但 ascii 可能是正确的)。
请注意,鉴于您有 40,000 个文件,文件格式可能存在其他问题,但这是我在您提供的文件中找到的唯一一个。
Update:根据第二个示例文件,编码似乎是 Windows CP-1252,因此以下内容应该有效:
import xlrd
workbook = xlrd.open_workbook('harvest.xls', encoding_override='cp1252')