0

0

如何将多个 DataFrame 导出到同一个 Excel 文件的不同工作表中

心靈之曲

心靈之曲

发布时间:2026-02-10 10:36:49

|

391人浏览过

|

来源于php中文网

原创

如何将多个 DataFrame 导出到同一个 Excel 文件的不同工作表中

本文详解如何正确使用 pandas 的 `excelwriter` 将多个 dataframe 写入单个 `.xlsx` 文件的多个独立工作表,避免覆盖问题,并提供稳定、可复用的代码实现。

在使用 pandas 导出多个 DataFrame 到 Excel 时,一个常见误区是:在循环中反复创建新的 ExcelWriter 实例并调用 writer.close()(或使用 with 语句),这会导致每次写入都覆盖整个文件,最终仅保留最后一次写入的 Sheet —— 这正是提问者遇到“只生成一个工作表”的根本原因。

关键在于:所有 Sheet 必须在同一个 ExcelWriter 上下文中完成写入,而非每次循环新建一个 writer。而 xlsxwriter 引擎不支持追加模式(mode='a'),因此需改用 openpyxl 引擎,它支持以“追加”方式打开已有文件并添加/替换工作表。

✅ 正确做法如下(推荐简洁健壮版本):

import pandas as pd
import os

# 确保 openpyxl 已安装:pip install openpyxl
with pd.ExcelWriter(save_file.get(), engine="openpyxl", mode="w") as writer:
    for i in range(len(dfs)):
        dfs[i].to_excel(writer, sheet_name=sn[i], index=False)

该方案一次性初始化 writer(mode="w" 表示写入/覆盖),然后在同一上下文内循环写入多个 Sheet,自动分配为独立标签页,无需手动判断文件是否存在,也无需重复打开/关闭文件,性能更优、逻辑更清晰。

AOXO_CMS建站系统企业通用版1.0
AOXO_CMS建站系统企业通用版1.0

一个功能强大、性能卓越的企业建站系统。使用静态网页技术大大减轻了服务器负担、加快网页的显示速度、提高搜索引擎推广效果。本系统的特点自定义模块多样化、速度快、占用服务器资源小、扩展性强,能方便快捷地建立您的企业展示平台。简便高效的管理操作从用户使用的角度考虑,对功能的操作方便性进行了设计改造。使用户管理的工作量减小。网站互动数据可导出Word文档,邮件同步发送功能可将互动信息推送到指定邮箱,加快企业

下载

⚠️ 注意事项:

  • engine="openpyxl" 是必须的;xlsxwriter 不支持 mode="a" 或多 Sheet 追加写入;
  • sheet_name 长度不能超过 31 字符,且不可包含 : \ / ? * [ ] 等非法字符,建议预处理(如 sn[i][:31].strip());
  • 若需兼容已存在文件并动态追加(如分批处理),可改用 mode="a" + if_sheet_exists="replace",但首次写入仍需 mode="w" 创建文件;
  • index=False 推荐显式指定,避免冗余索引列;
  • save_file.get() 应返回合法路径(含 .xlsx 后缀),否则可能引发引擎异常。

? 扩展建议:
对于更复杂的场景(如自定义格式、冻结窗格、条件格式),可在 openpyxl writer 关闭后,用 openpyxl.load_workbook() 加载文件进行二次编辑;若需高性能大批量导出,也可考虑 xlsxwriter 配合一次性构建字典 {sheet_name: df} 后统一写入(需先收集全部数据)。

总之,核心原则是:一个文件 ↔ 一个 ExcelWriter 实例 ↔ 多次 .to_excel() 调用。遵循此模式,即可稳定、高效地生成多工作表 Excel 报表。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
Python 时间序列分析与预测
Python 时间序列分析与预测

本专题专注讲解 Python 在时间序列数据处理与预测建模中的实战技巧,涵盖时间索引处理、周期性与趋势分解、平稳性检测、ARIMA/SARIMA 模型构建、预测误差评估,以及基于实际业务场景的时间序列项目实操,帮助学习者掌握从数据预处理到模型预测的完整时序分析能力。

73

2025.12.04

Python 数据清洗与预处理实战
Python 数据清洗与预处理实战

本专题系统讲解 Python 在数据清洗与预处理中的核心技术,包括使用 Pandas 进行缺失值处理、异常值检测、数据格式化、特征工程与数据转换,结合 NumPy 高效处理大规模数据。通过实战案例,帮助学习者掌握 如何处理混乱、不完整数据,为后续数据分析与机器学习模型训练打下坚实基础。

3

2026.01.31

excel对比两列数据异同
excel对比两列数据异同

Excel作为数据的小型载体,在日常工作中经常会遇到需要核对两列数据的情况,本专题为大家提供excel对比两列数据异同相关的文章,大家可以免费体验。

1417

2023.07.25

excel重复项筛选标色
excel重复项筛选标色

excel的重复项筛选标色功能使我们能够快速找到和处理数据中的重复值。本专题为大家提供excel重复项筛选标色的相关的文章、下载、课程内容,供大家免费下载体验。

417

2023.07.31

excel复制表格怎么复制出来和原来一样大
excel复制表格怎么复制出来和原来一样大

本专题为大家带来excel复制表格怎么复制出来和原来一样大相关文章,帮助大家解决问题。

566

2023.08.02

excel表格斜线一分为二
excel表格斜线一分为二

在Excel表格中,我们可以使用斜线将单元格一分为二。本专题为大家带来excel表格斜线一分为二怎么弄的相关文章,希望可以帮到大家。

1251

2023.08.02

excel斜线表头一分为二
excel斜线表头一分为二

excel斜线表头一分为二的方法有使用合并单元格功能方法、使用文本框功能方法、使用自定义格式方法。本专题为大家提供excel斜线表头一分为二相关的各种文章、以及下载和课程。

373

2023.08.02

绝对引用的输入方法
绝对引用的输入方法

绝对引用允许在公式中引用一个固定的单元格,而不会随着公式的复制和粘贴而改变引用的单元格。本专题为大家提供绝对引用相关内容的文章,大家可以免费体验。

4540

2023.08.09

Golang处理数据库错误教程合集
Golang处理数据库错误教程合集

本专题整合了Golang数据库错误处理方法、技巧、管理策略相关内容,阅读专题下面的文章了解更多详细内容。

153

2026.02.06

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Excel 教程
Excel 教程

共162课时 | 16.3万人学习

成为PHP架构师-自制PHP框架
成为PHP架构师-自制PHP框架

共28课时 | 2.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号