吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1190|回复: 7
收起左侧

[其他求助] 有个excel文件,无法使用openpyxl或者xlrd打开,均报错格式不正确

[复制链接]
liyitong 发表于 2025-9-3 12:47
25吾爱币
excel文件:
https://liyitong.lanzout.com/i0lWf35a4shi

[Python] 纯文本查看 复制代码
import xlrd
import openpyxl
file_path = "E:\\system\\desktop\\教室课表\\403.xls"

try:
    xlrd.open_workbook(file_path)
except xlrd.biffh.XLRDError:
    print("文件格式不正确,请使用Excel 97-2003格式")

try:
    openpyxl.load_workbook(file_path)
except openpyxl.utils.exceptions.InvalidFileException:
    print("文件格式不正确,请使用Excel 2007格式")
代码执行结果:
文件格式不正确,请使用Excel 97-2003格式
文件格式不正确,请使用Excel 2007格式
这个文件是从教务系统直接导出的文件,然后我删除掉了大部分数据。如果我把这个文件另存为xls或者xlsx,又都能正常执行出结果了。
所以问问,这个文件究竟有啥玄机。

最佳答案

查看完整内容

[mw_shl_code=python,true]import xlrd file_path = "./403.xls" try: # 尝试用xlrd打开Excel 97-2003格式(.xls)文件 workbook = xlrd.open_workbook(file_path) print(f"文件 '{file_path}' 打开成功,工作表名称列表:{workbook.sheet_names()}") # 可在此处添加后续操作(如读取工作表数据) # 示例:获取第一个工作表 sheet = workbook.sheet_by_index(0) print(f"第一个工作表行 ...

免费评分

参与人数 1热心值 +1 收起 理由
倾情 + 1 热心回复!

查看全部评分

发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Arcticlyc 发表于 2025-9-3 12:47
[Python] 纯文本查看 复制代码
import xlrd

file_path = "./403.xls"

try:
    # 尝试用xlrd打开Excel 97-2003格式(.xls)文件
    workbook = xlrd.open_workbook(file_path)
    print(f"文件 '{file_path}' 打开成功,工作表名称列表:{workbook.sheet_names()}")
    # 可在此处添加后续操作(如读取工作表数据)
    # 示例:获取第一个工作表
    sheet = workbook.sheet_by_index(0)
    print(f"第一个工作表行数:{sheet.nrows},列数:{sheet.ncols}")

except FileNotFoundError:
    print(f"错误:文件 '{file_path}' 不存在,请检查文件路径是否正确")

except xlrd.biffh.XLRDError:
    # 结合文件类型检测结果(OLE2格式,对应.xls),此处异常多为文件损坏或非标准.xls
    print(f"错误:文件 '{file_path}' 格式异常(可能损坏或非标准Excel 97-2003格式),请检查文件完整性")


[Asm] 纯文本查看 复制代码
文件 './403.xls' 打开成功,工作表名称列表:['403 - 副本']
第一个工作表行数:49,列数:8
congcongzhidao 发表于 2025-9-3 13:27
这是一个 伪装成 .xls 的 HTML 文件,即 Excel HTML 格式,不是二进制 .xls
这个文件头部是
<html xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:x="urn:schemas-microsoft-com:office:excel"
...
这是 Microsoft Excel 2000-2003 时期 使用的一种「Web 页面导出格式」,官方叫做 "Excel HTML" 或 "Single File Web Page"。
虽然扩展名是 .xls,但它 不是二进制 Excel 文件(不是 OLE Compound File 格式)

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
liyitong + 1 + 1 谢谢@Thanks!

查看全部评分

lisongmei 发表于 2025-9-3 13:41
openpyxl 本身完全不支持 .xls,安装 pip install xlrd==1.2.0。xlwt &#128073; 只能写 .xls,不能读
mornstar52 发表于 2025-9-3 14:09
真正的xls文件是 Microsoft OLE Compound Document Format 的一种复杂二进制格式, xlrd  和 openpyxl 处理的是这种结构化二进制数据。
你得到的文件是虽然扩展名是xls, 但是内部是纯文本的纯文本的 HTML/XML 格式, 你可以用记事本打开验证
excel本身兼容的文件格式比较多, 这种文件能打开
要想用python处理,
1、在excel导出的时候选对格式,或者用excel转换格式,
2、要么使用pandas读取

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
liyitong + 1 + 1 确实,它就是html,只是xls扩展名。excel恰好能打开html,误导了我

查看全部评分

zpy2 发表于 2025-9-3 15:01
内容在
"403.files/sheet001.htm" name="frSheet">
"403.files/tabstrip.htm
a2523188267 发表于 2025-9-3 15:09
9.6K的文件,你想它是什么文件,根本是错误的格式,没带任何内容,或说文件信息极不完整。不是表格文件,直接也是打不开
 楼主| liyitong 发表于 2025-9-3 17:03
congcongzhidao 发表于 2025-9-3 13:27
这是一个 伪装成 .xls 的 HTML 文件,即 Excel HTML 格式,不是二进制 .xls
这个文件头部是

不好意思,文件传错了。
是这个。
https://liyitong.lanzout.com/iwbZT35attah
能帮我看看吗
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - 52pojie.cn ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2026-11-5 10:41

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表