使用pandas替换Excel指定工作表数据且不删除其余工作表的问题求解
替换Excel指定工作表且保留其余工作表的解决方案
问题原因
直接使用DataFrame.to_excel()写入已有Excel文件时,pandas默认会新建文件覆写原文件,因此会删除原文件内所有其他工作表。
解决方案
需要借助openpyxl引擎操作已有工作簿,只替换目标工作表:
适用pandas 1.4.0及以上版本
import pandas as pd # 替换为你的Weekly Report.xlsx实际路径 target_file = directory + 'Weekly Report.xlsx' with pd.ExcelWriter( target_file, engine='openpyxl', mode='a', # 追加模式,不覆盖原有文件内容 if_sheet_exists='replace' # 目标工作表存在时直接替换 ) as writer: df2.to_excel(writer, sheet_name='Weekly SAP extract', index=False)
适用低版本pandas
import pandas as pd from openpyxl import load_workbook target_file = directory + 'Weekly Report.xlsx' # 加载原有工作簿 wb = load_workbook(target_file) # 先删除已存在的目标工作表 if 'Weekly SAP extract' in wb.sheetnames: del wb['Weekly SAP extract'] with pd.ExcelWriter(target_file, engine='openpyxl') as writer: writer.book = wb # 同步原有工作表信息,避免丢失 writer.sheets = {sheet.title: sheet for sheet in wb.worksheets} df2.to_excel(writer, sheet_name='Weekly SAP extract', index=False)
内容的提问来源于stack exchange,提问作者Greencolor
相关产品推荐
相关产品推荐

