使用pandas.read_excel读取xlsx文件失败,仅出现样式警告
问题描述
使用pandas读取常规格式的.xlsx文件时读取失败,无报错信息,仅收到以下警告:
UserWarning: Workbook contains no default style, apply openpyxl's default
warn("Workbook contains no default style, apply openpyxl's default")
已尝试指定engine='openpyxl'、指定工作表名称,均无法解决问题。执行代码如下:
df = pd.read_excel('data/RESULT_LIST_ANONYM_ENERGY_MARKET_aFRR_2021-12-01_2021-12-31.xlsx')
依赖包版本:
- pandas: 1.5.0
- openpyxl: 3.0.10
解决方案
确认是否真的读取失败
执行代码后打印df或df.shape,查看是否有数据。该警告仅和文件样式缺失有关,大概率不影响数据读取,可能是你误以为读取失败。过滤样式警告(若无需关注样式)
如果确认数据已读取成功,只是想消除警告,可以用warnings模块过滤:import warnings warnings.filterwarnings('ignore', category=UserWarning, module='openpyxl') df = pd.read_excel('data/RESULT_LIST_ANONYM_ENERGY_MARKET_aFRR_2021-12-01_2021-12-31.xlsx', engine='openpyxl')检查文件本身状态
- 用Excel或WPS打开文件,确认文件未损坏、数据存在且无隐藏内容
- 检查工作表名称是否正确(注意大小写、空格),可以用以下代码列出所有工作表名:
from openpyxl import load_workbook wb = load_workbook('data/RESULT_LIST_ANONYM_ENERGY_MARKET_aFRR_2021-12-01_2021-12-31.xlsx') print(wb.sheetnames)
尝试其他读取引擎
- 若安装了
xlrd(需版本<2.0,因为2.0+仅支持.xls格式),指定engine='xlrd'尝试读取 - 安装
pyxlsb库,使用engine='pyxlsb'读取:# 先安装:pip install pyxlsb df = pd.read_excel('data/RESULT_LIST_ANONYM_ENERGY_MARKET_aFRR_2021-12-01_2021-12-31.xlsx', engine='pyxlsb')
- 若安装了
明确指定读取参数
若文件表头或数据区域特殊,尝试指定header、usecols、skiprows等参数:# 示例:指定第1行为表头,读取A到F列 df = pd.read_excel('data/RESULT_LIST_ANONYM_ENERGY_MARKET_aFRR_2021-12-01_2021-12-31.xlsx', engine='openpyxl', header=0, usecols='A:F')升级依赖包版本
旧版本pandas和openpyxl可能存在兼容bug,升级到较新版本试试:pip install --upgrade pandas openpyxl
内容的提问来源于stack exchange,提问作者maxxel_
相关产品推荐
相关产品推荐

