使用openpyxl打开xlsx文件无输出问题求助(禁用pandas)
解决openpyxl加载无默认样式Excel文件的问题
问题分析
- 你遇到的警告源于下载的Excel文件缺少默认样式定义,openpyxl会提示需应用其内置默认样式
- 忽略警告后无输出是因为代码仅完成工作簿加载,未执行任何读取或输出数据的操作
解决方案
1. 消除警告并正确加载工作簿
使用openpyxl.load_workbook的apply_default_style=True参数,主动应用openpyxl默认样式,直接避免警告:
from zipfile import ZipFile import openpyxl # 解压压缩包 with ZipFile('HISTDATA_COM_XLSX_EURUSD_M12018.zip', 'r') as zipObj: zipObj.extractall() # 加载工作簿并应用默认样式 ref_workbook = openpyxl.load_workbook('DAT_XLSX_EURUSD_M1_2018.xlsx', apply_default_style=True)
2. 添加数据读取与输出代码
加载工作簿后,需获取工作表并读取数据才能看到输出。示例:读取第一个工作表的表头和前10行数据:
# 获取第一个工作表(active表示默认激活的工作表) ws = ref_workbook.active # 输出表头 print("表头内容:") for cell in ws[1]: print(cell.value, end='\t') print("\n") # 输出前10行数据(从第2行开始,跳过表头) print("前10行数据:") for row in ws.iter_rows(min_row=2, max_row=11, values_only=True): print('\t'.join(str(cell) if cell is not None else '' for cell in row))
3. 可选:精准过滤警告(不推荐,优先用方案1)
如果不想应用默认样式,仅需静默该特定警告,可精准过滤而非全局忽略:
from zipfile import ZipFile import openpyxl import warnings # 仅过滤openpyxl的无默认样式警告 warnings.filterwarnings("ignore", category=UserWarning, module="openpyxl") with ZipFile('HISTDATA_COM_XLSX_EURUSD_M12018.zip', 'r') as zipObj: zipObj.extractall() ref_workbook = openpyxl.load_workbook('DAT_XLSX_EURUSD_M1_2018.xlsx') # 后续添加数据读取输出代码...
补充说明
从该数据源下载的Excel文件为简化格式,缺少标准样式定义,因此需要通过apply_default_style参数处理;单纯加载工作簿不会产生控制台输出,必须添加数据读取逻辑才能看到内容。
内容的提问来源于stack exchange,提问作者Dorrin Samadian
相关产品推荐
相关产品推荐

