python写入excel多个sheet表 以及追加sheet表
- 写入多个sheet表
- 在excel追加sheet表
可将不同DataFrame分别写入指定Sheet(如初始写入"箱_4"和"箱_2"),并通过封装函数append_to_excel支持动态追加新Sheet到现有文件,自动处理Sheet名重复问题(如重复时生成"新数据表_副本1")
写入多个sheet表
import pandas as pd# 创建 ExcelWriter 对象(指定引擎为 openpyxl)
with pd.ExcelWriter('汇总.xlsx', engine='openpyxl') as writer:# 将原始数据写入 Sheet 名 "原始数据"df.to_excel(writer, sheet_name='箱_4', index=False)# 将去重后数据写入 Sheet 名 "去重数据"df.to_excel(writer, sheet_name='箱_2', index=False)print("数据已保存到不同 Sheet 中!")
在excel追加sheet表
import pandas as pd
import osdef append_to_excel(df, file_path, sheet_name):"""将 DataFrame 追加到 Excel 文件的新 Sheet 中,自动处理 Sheet 名重复问题参数:df: 要保存的 DataFramefile_path: Excel 文件路径 (e.g., 'data.xlsx')sheet_name: 新 Sheet 的名称"""# 判断文件是否存在,决定写入模式mode = 'a' if os.path.exists(file_path) else 'w'with pd.ExcelWriter(file_path, engine='openpyxl', mode=mode) as writer:# 处理 Sheet 名重复if mode == 'a':existing_sheets = writer.book.sheetnames # 获取现有 Sheet 名列表new_sheet_name = sheet_namecounter = 1while new_sheet_name in existing_sheets:new_sheet_name = f"{sheet_name}_副本{counter}"counter += 1sheet_name = new_sheet_name # 更新为唯一 Sheet 名df.to_excel(writer, sheet_name=sheet_name, index=False)print(f"数据已追加到 Sheet: '{sheet_name}'")# 使用示例
df = pd.DataFrame({'数据列': [1, 2, 3]})
append_to_excel(df, '汇总.xlsx', '新数据表')