pandas调用to_excel导出Excel时如何隐藏指定列
实现方案
pandas自带的to_excel接口没有直接提供隐藏列的参数,你只需要在原有写入逻辑的基础上,调用写入后生成的openpyxl工作表对象,给对应列设置hidden=True属性就能实现需求,不需要修改原有的数据写入流程。
完整代码
with pd.ExcelWriter(target_directory + 'output_test.xlsx') as writer: table_of_contents_df.to_excel(writer, sheet_name='Contents', index = False) dir_tree_df.to_excel(writer, sheet_name='Data', index = False) # 配置Contents表:隐藏第1列 contents_ws = writer.sheets['Contents'] target_col = contents_ws.cell(row=1, column=1).column_letter contents_ws.column_dimensions[target_col].hidden = True # 配置Data表:隐藏前3列 data_ws = writer.sheets['Data'] for col_idx in range(1, 4): col_letter = data_ws.cell(row=1, column=col_idx).column_letter data_ws.column_dimensions[col_letter].hidden = True
说明
- Excel列序号从1开始计数,和原生Excel中A列为第1列的规则一致
- 代码通过
column_letter属性自动将数字列序号转换为Excel识别的A/B/C类列标识,不需要手动计算列名,后续如果需要调整隐藏列的范围,直接修改列序号的取值范围即可 - 该操作仅修改列的显示状态,所有数据都会完整写入Excel文件,用户打开文件后手动取消列隐藏就能查看全部内容
- 方案依赖
openpyxl库,未安装的话先执行pip install openpyxl完成安装即可,pandas写入xlsx格式文件默认使用该引擎,不需要额外配置引擎参数
内容的提问来源于stack exchange,提问作者user14380579
相关产品推荐
相关产品推荐

