You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

pandas写入Excel新建工作表时保留原有工作表的代码修正方法

故障原因

pandas.DataFrame.to_excel默认采用覆盖写入模式,直接对原文件路径执行写入操作时,会清空整个Excel文件内的所有原有内容,仅保留本次写入的"New Sheet"工作表,这就是原有"Old Sheet"丢失的根本原因。

修正代码

通过追加模式写入新工作表即可保留所有原有sheet,追加写入xlsx格式需要依赖openpyxl引擎,修正后代码如下:

import pandas as pd
from openpyxl import load_workbook

file_source = r'C:\Users\user\Desktop\Data.xlsx'
target_cols = ['iso2', 'cnum', 'country']

# 读取Old Sheet中需要复制的三列数据
copy_data = pd.read_excel(file_source, sheet_name="Old Sheet", usecols=target_cols)

# 以追加模式打开Excel文件,写入新工作表
with pd.ExcelWriter(
    file_source,
    mode='a',
    engine='openpyxl',
    if_sheet_exists='replace'
) as writer:
    copy_data.to_excel(writer, sheet_name="New Sheet", index=False)
参数说明
  • mode='a':设置为追加写入模式,不会覆盖文件内原有工作表
  • engine='openpyxl':指定操作xlsx文件的操作引擎,pandas默认写入引擎不支持xlsx格式的追加写入操作
  • if_sheet_exists='replace':如果文件中已经存在同名的"New Sheet",直接替换其内容;如果不需要覆盖已有sheet,可将该参数改为'error'(存在同名sheet时直接抛出报错)或'new'(自动生成新的sheet名完成写入)

内容的提问来源于stack exchange,提问作者CanaryTheBird

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 06:15:45