Pandas无法打开XLSX文件,报TypeError: expected openpyxl.styles.fills.Fill
解决Pandas读取XLSX时Fill()相关TypeError问题
以下是几个可行的解决方向:
降级openpyxl到兼容版本
最新版openpyxl的样式API可能和当前Pandas版本存在兼容问题,尝试降级到稳定兼容版本:pip install openpyxl==3.0.10 --force-reinstall之后再用原代码尝试读取:
df = pd.read_excel('data - 2017.xlsx', engine='openpyxl')更换读取引擎
试试用pyxlsb引擎,它对复杂格式的Excel文件兼容性较好:
先安装依赖:pip install pyxlsb然后读取文件:
df = pd.read_excel('data - 2017.xlsx', engine='pyxlsb')跳过样式直接读取数据
如果文件存在异常样式导致报错,用openpyxl只读模式跳过样式解析,手动提取数据:import pandas as pd from openpyxl import load_workbook wb = load_workbook('data - 2017.xlsx', read_only=True, data_only=True) ws = wb.active # 提取所有行数据 row_data = [row for row in ws.iter_rows(values_only=True)] # 转成DataFrame,第一行作为列名 df = pd.DataFrame(row_data[1:], columns=row_data[0])检查并修复Excel文件
尝试打开原Excel文件,另存为全新的XLSX文件(选择"仅保存数据"选项),或者复制所有数据到新的空白工作簿中,再用Pandas读取新文件,排除原文件损坏或异常样式的问题。
内容的提问来源于stack exchange,提问作者PAL
相关产品推荐
相关产品推荐

