You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python读取Selenium下载的XLS文件时出现小端序错误求助

解决Selenium下载的XLS文件无法读取,Excel保存后恢复正常的问题

这种情况我之前踩过坑!Selenium下载的Excel 97-2003文件(.xls)经常会出现这种“Excel能打开,但代码读不了”的情况,根本不是编码的问题——毕竟你试了各种编码都没用,而且Excel保存后就正常了,核心原因是下载的文件不是标准的BIFF格式,可能混了额外的响应字节或者结构有轻微损坏,而Excel打开时会自动修复这些问题。

下面给你几个亲测有效的解决思路:

1. 检查并清理文件的无效头部/尾部字节

Selenium下载文件时,有时候服务器返回的响应会带一些HTTP响应头的残留字节,或者传输过程中多了些无关数据,导致解析库(比如xlrd、pandas)识别失败。标准的.xls文件开头8字节的十六进制签名是D0 CF 11 E0 A1 B1 1A E1,你可以用Python验证一下:

import binascii

with open("你的下载文件.xls", "rb") as f:
    header = f.read(8)
    print(binascii.hexlify(header).upper())

如果输出不是上面的签名,那说明文件开头有多余内容。你可以尝试从正确的签名位置开始截取文件内容,再保存成新文件:

with open("下载的文件.xls", "rb") as f_in, open("修复后的文件.xls", "wb") as f_out:
    content = f_in.read()
    # 找到标准签名的起始位置
    start_idx = content.find(b'\xd0\xcf\x11\xe0\xa1\xb1\x1a\xe1')
    if start_idx != -1:
        f_out.write(content[start_idx:])

处理完之后再用解析库读取,大概率就能正常识别了。

2. 用能模拟Excel修复的工具读取

如果不想手动处理文件,直接调用Excel本身的修复能力是最省心的(前提是Windows环境装了Excel),用win32com.client就能实现:

import win32com.client as win32

# 启动Excel后台进程
excel = win32.gencache.EnsureDispatch('Excel.Application')
excel.Visible = False  # 后台运行不显示窗口

# 打开文件(Excel会自动修复)
wb = excel.Workbooks.Open(r"你的下载文件路径.xls")
ws = wb.Worksheets(1)  # 取第一个工作表

# 示例:读取A1到C10的单元格数据
data = []
for row in range(1, 11):
    row_data = []
    for col in range(1, 4):
        row_data.append(ws.Cells(row, col).Value)
    data.append(row_data)

# 关闭文件和Excel进程
wb.Close(SaveChanges=False)
excel.Quit()

print(data)

这个方法和你手动打开保存的效果完全一致,Excel会自动处理文件里的异常内容。

3. 换用更兼容的解析库

有些旧版本的解析库对非标准xls文件支持不好,比如xlrd 2.0之后不再支持xls格式,你可以降级到xlrd 1.2.0版本,配合pandas读取:

import pandas as pd

# 确保安装了xlrd 1.2.0:pip install xlrd==1.2.0
df = pd.read_excel("下载的文件.xls", engine='xlrd')
print(df.head())

另外也可以试试pyexcel库,它对各种格式的兼容性更强:

import pyexcel as pe

sheet = pe.get_sheet(file_name="下载的文件.xls")
print(sheet.to_array())

总的来说,最根本的问题就是下载的文件不是完全标准的xls结构,Excel的修复机制帮你抹平了差异,你只需要在代码里模拟这个修复过程,或者提前清理掉无效内容就能解决问题啦!

内容的提问来源于stack exchange,提问作者Frostic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 08:28:10