Python 使用 pandas 保存 Excel 文件

使用pandas保存Excel文件需调用to_excel方法,基本语法为df.to_excel("output.xlsx", index=False)以避免保存行索引。若需保存多个DataFrame到不同工作表,应使用pd.ExcelWriter配合上下文管理器,分别指定sheet_name。如需设置列宽等样式,可结合xlsxwriter引擎,在保存后通过workbook和worksheet对象调整格式。注意确保文件未被占用、处理中文时选择正确编码,并根据需要安装openpyxl或xlsxwriter等依赖包。

用 Python 的 pandas 保存 Excel 文件非常简单,主要依赖 pandas.DataFrame.to_excel() 方法。下面介绍常见用法和注意事项,帮你快速上手。

基本保存方法

最简单的操作是将 DataFrame 保存为 Excel 文件:

df.to_excel("output.xlsx", index=False)

说明:

  • df 是你的 DataFrame 数据
  • "output.xlsx" 是文件名,可自定义路径
  • index=False 表示不保存行索引,否则会多出一列序号

保存多个工作表(Sheet)

如果想把多个 DataFrame 写入同一个 Excel 文件的不同 sheet,需要使用 pandas.ExcelWriter

with pd.ExcelWriter("multiple_sheets.xlsx") as writer:
    df1.to_excel(writer, sheet_name="数据1", index=False)
    df2.to_excel(writer, sheet_name="数据2", index=False)

这样会在一个文件里生成两个名为“数据1”和“数据2”的工作表。

设置格式和样式(可选)

pandas 默认保存的 Excel 格式较基础。如需美化表格(比如加粗标题、调整列宽),可以结合 xlsxwriter 引擎:

with pd.ExcelWriter("styled.xlsx", engine="xlsxwriter") as writer:
    df.to_excel(writer, sheet_name="报表", index=False)
    workbook = writer.book
    worksheet = writer.sheets["报表"]
    worksheet.set_column("A:D", 15) # 设置 A 到 D 列宽度为 15

先安装依赖:pip install xlsxwriter

常见问题注意

  • 文件被占用时无法写入,确保目标文件未在 Excel 中打开
  • 中文乱码一般不是 pandas 问题,Excel 打开时选择 UTF-8 编码即可
  • 若提示缺少引擎,安装支持包:pip install openpyxl 或 xlsxwriter
  • 默认使用 openpyxl 引擎处理 .xlsx 文件,一般无需指定

基本上就这些。掌握 to_excel 和 ExcelWriter,就能应对大多数导出需求。不复杂但容易忽略 index=False 和引擎选择。