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

使用pandas读取xlsx文件时遇TypeError: __init__() got unexpected keyword argument 'xxid'

解决读取xlsx时出现TypeError: __init__() got an unexpected keyword argument 'xxid'的问题

问题原因

这个错误是因为你使用的openpyxl版本不兼容文件中的xxid样式属性——这类文件通常由WPS或其他非微软Excel的办公工具生成。手动用Excel保存后,文件会自动移除该属性,所以能正常读取,但批量处理需要自动化方案。

解决方案

方案1:升级openpyxl到最新版本

这是最直接的解决方式,新版本openpyxl已修复对xxid属性的兼容问题:

pip install --upgrade openpyxl

升级后修正原代码的语法错误(import pandas pd应为import pandas as pd),重新运行即可:

import pandas as pd
readFile = pd.read_excel("test.xlsx")

方案2:批量自动修复文件(若升级无效)

如果升级后仍存在问题,可以用Python批量模拟Excel保存操作:

Windows环境

import os
import win32com.client as win32

def repair_xlsx(file_path):
    excel = win32.gencache.EnsureDispatch('Excel.Application')
    excel.Visible = False
    try:
        wb = excel.Workbooks.Open(file_path)
        wb.Save()
        wb.Close()
    except Exception as e:
        print(f"处理文件{file_path}出错: {e}")
    finally:
        excel.Quit()

# 批量处理目标文件夹下所有xlsx文件
folder_path = "你的文件夹路径"
for filename in os.listdir(folder_path):
    if filename.endswith(".xlsx"):
        file_path = os.path.join(folder_path, filename)
        repair_xlsx(file_path)

Mac环境

先安装依赖库:

pip install appscript

再运行批量处理代码:

import os
from appscript import app, k

def repair_xlsx_mac(file_path):
    excel = app('Microsoft Excel')
    try:
        wb = excel.open(file_path)
        wb.save()
        wb.close()
    except Exception as e:
        print(f"处理文件{file_path}出错: {e}")

folder_path = "你的文件夹路径"
for filename in os.listdir(folder_path):
    if filename.endswith(".xlsx"):
        file_path = os.path.join(folder_path, filename)
        repair_xlsx_mac(file_path)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 13:55:21