如何用Pandas合并Excel指定工作表并保留其余原有工作表?
实现Excel工作表合并并保留原有工作表的方法
你的问题出在仅将合并后的工作表写入文件,覆盖了原文件中所有其他内容。要保留P3、P4并覆盖原文件,需要先读取原文件的所有工作表,处理后再将所有需要保留的工作表重新写入。
完整代码示例
import pandas as pd # 1. 读取原文件的所有工作表,返回一个以工作表名为键的字典 all_worksheets = pd.read_excel('output.xlsx', sheet_name=None) # 2. 合并P1和P2工作表,忽略原索引 merged_df = pd.concat([all_worksheets['P1'], all_worksheets['P2']], ignore_index=True) # 3. 移除原有的P1、P2工作表,添加合并后的新工作表 del all_worksheets['P1'] del all_worksheets['P2'] all_worksheets['P1&P2'] = merged_df # 4. 将所有工作表写入原文件,覆盖原有内容但保留需要的工作表 with pd.ExcelWriter('output.xlsx', engine='xlsxwriter') as writer: for sheet_name, df in all_worksheets.items(): df.to_excel(writer, sheet_name=sheet_name, index=False)
关键说明
- 使用
sheet_name=None读取所有工作表,确保不会遗漏P3、P4等其他表 - 处理完合并后,更新工作表字典,移除旧的P1、P2并加入新表
- 遍历字典将所有工作表写入文件,这样原文件会被覆盖,但所有需要保留的工作表都会被写入
注意事项
如果原Excel文件包含单元格样式、公式或宏,pandas的读写操作会丢失这些内容。若需要保留格式,可使用openpyxl库直接操作Excel文件的工作表,但实现逻辑会更复杂。
内容的提问来源于stack exchange,提问作者The Great
相关产品推荐
相关产品推荐

