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

使用Xlsxwriter写入Excel时原有工作表被删除 如何仅修改指定工作表

问题原因

你当前使用xlsxwriter作为写入引擎时,默认会创建全新的Excel文件覆盖原文件,因此原文件中所有未在本次代码中指定写入的工作表都会被直接清除。

解决方法

要保留原有工作表仅写入/更新指定工作表,需要做两个调整:

  1. 将写入引擎更换为支持追加模式的openpyxl
  2. 初始化ExcelWriter时设置写入模式为追加mode='a'

如果需要覆盖原文件中已存在的同名工作表,可通过if_sheet_exists参数配置自动覆盖,避免重名报错。

修改后完整代码
from datetime import datetime
import numpy as np
import pandas as pd
from openpyxl import load_workbook

start = datetime.now()

df = pd.read_excel(r"C:\Users\harsh\Google Drive\Oddsportal\Files\Oddsportal "
                   r"Data\Historical Worksheet\data.xlsx", sheet_name='x1')
df['run_time'] = start

df1 = pd.read_csv(r"C:\Users\harsh\Google Drive\Oddsportal\Files\Oddsportal "
                  r"Data\Pre-processed\oddsportal_upcoming_matches.csv")
df1['run_time'] = start
concat = [df, df1]
df_c = pd.concat(concat)

path = r"C:\Users\harsh\Google Drive\Oddsportal\Files\Oddsportal Data\Historical Worksheet\data.xlsx"

# 改用openpyxl引擎,开启追加模式,自动替换已有同名工作表
with pd.ExcelWriter(path, engine='openpyxl', mode='a', if_sheet_exists='replace') as writer:
    # index=False用于避免写入多余的索引列,不需要可删除
    df.to_excel(writer, sheet_name='x1', index=False)
    df1.to_excel(writer, sheet_name='x2', index=False)
    df_c.to_excel(writer, sheet_name='upcoming_archive', index=False)

print(df_c.head())
注意事项
  • 运行前请确保已安装openpyxl依赖,未安装可执行pip install openpyxl
  • if_sheet_exists='replace'参数仅在pandas 1.4.0及以上版本支持,如果你使用的是更低版本,可以在写入前手动删除同名工作表:
with pd.ExcelWriter(path, engine='openpyxl', mode='a') as writer:
    # 低版本pandas手动删除已有同名表
    for sheet_name in ['x1', 'x2', 'upcoming_archive']:
        if sheet_name in writer.book.sheetnames:
            del writer.book[sheet_name]
    df.to_excel(writer, sheet_name='x1', index=False)
    df1.to_excel(writer, sheet_name='x2', index=False)
    df_c.to_excel(writer, sheet_name='upcoming_archive', index=False)
  • 如果不需要覆盖原有同名工作表,将if_sheet_exists参数改为'new',同时设置新的工作表名称即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 08:00:00