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

使用Pandas读取XLSX文件遇TypeError: CellStyle.__init__()参数异常求助

解决Pandas读取XLSX时的TypeError: CellStyle.__init__() got an unexpected keyword argument 'applyFillId'错误

错误原因

该报错由openpyxl版本过低导致:Excel文件中包含了applyFillId这个较新的样式属性,而旧版openpyxl未实现对该属性的解析逻辑,即使指定engine='openpyxl'也无法解决。


解决方案

方案1:升级openpyxl到兼容版本

执行以下命令升级openpyxl,新版本已支持解析applyFillId属性:

pip install --upgrade openpyxl

升级后直接使用原有代码即可正常读取文件:

df = pd.read_excel(input_file, sheet_name=_sheetname, skiprows=10, usecols=5, names=_columnnames)

方案2:跳过样式加载(仅需数据时使用)

如果不需要保留Excel的格式信息,可以让openpyxl跳过样式解析,直接读取数据:

import pandas as pd
from openpyxl import load_workbook

# 加载工作簿时跳过样式,只读模式提升效率
wb = load_workbook(input_file, read_only=True, data_only=True)
ws = wb[_sheetname]

# 读取指定行列:跳过前10行,提取第5列(索引从0开始)
data = []
for row in ws.iter_rows(min_row=11, values_only=True):
    if len(row) >= 5:
        data.append([row[4]])

# 转换为DataFrame
df = pd.DataFrame(data, columns=_columnnames)

方案3:转换Excel文件格式

若无法升级库,可将原XLSX文件用Excel另存为.xls格式,再使用xlrd引擎读取:

pip install xlrd
df = pd.read_excel(input_file, sheet_name=_sheetname, skiprows=10, usecols=5, names=_columnnames, engine='xlrd')

注意:xlrd仅支持旧版.xls格式,不兼容.xlsx。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 19:10:11