如何解决Python导入Excel 97-2003 XLS文件的格式不支持报错?
问题根源
你的文件并非真正的Excel 97-2003 XLS格式,而是被重命名为.xls的HTML文件(错误提示里的b'<html xm'已经明确显示文件开头是HTML结构),这也是xlrd、openpyxl等Excel专用库无法读取的原因。
解决方案
方案1:用pandas直接读取HTML内容
pandas的read_html方法可以直接解析这类伪装成xls的HTML表格文件,代码示例:
import pandas as pd # 读取文件中的所有HTML表格,返回DataFrame列表 table_list = pd.read_html('KONKA_1284314_2023_4.xls') # 取第一个表格(如果文件包含多个表格,可根据索引选择对应表格) df = table_list[0] # 查看数据前几行验证 print(df.head())
方案2:如果是XML结构(你提到类似XML),用XML解析库处理
如果文件实际是XML格式,可使用Python内置的xml.etree或第三方库lxml解析,再转换为DataFrame,示例代码(需根据实际XML结构调整节点路径):
import xml.etree.ElementTree as ET import pandas as pd # 解析XML文件 tree = ET.parse('KONKA_1284314_2023_4.xls') root = tree.getroot() # 提取数据(示例路径,需根据你的XML实际结构修改) data_rows = [] for row_node in root.findall('.//row'): row_content = [node.text for node in row_node.findall('.//cell')] data_rows.append(row_content) # 转换为DataFrame df = pd.DataFrame(data_rows) print(df.head())
补充说明
xlrd、openpyxl这类库仅支持标准的Excel二进制格式(.xls)和OOXML格式(.xlsx),无法识别伪装成Excel后缀的HTML/XML文件,所以必须用对应格式的解析方法处理。
内容的提问来源于stack exchange,提问作者user25043761
相关产品推荐
相关产品推荐

