python写入excel多个sheet表 以及追加sheet表

python写入excel多个sheet表 以及追加sheet表

可将不同DataFrame分别写入指定Sheet(如初始写入"箱_4"和"箱_2"),并通过封装函数append_to_excel支持动态追加新Sheet到现有文件,自动处理Sheet名重复问题(如重复时生成"新数据表_副本1")

写入多个sheet表

python 复制代码
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表

python 复制代码
import pandas as pd
import os

def append_to_excel(df, file_path, sheet_name):
    """
    将 DataFrame 追加到 Excel 文件的新 Sheet 中,自动处理 Sheet 名重复问题
    参数:
        df: 要保存的 DataFrame
        file_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_name
            counter = 1
            while new_sheet_name in existing_sheets:
                new_sheet_name = f"{sheet_name}_副本{counter}"
                counter += 1
            sheet_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', '新数据表')
相关推荐
我要学习别拦我~1 分钟前
kaggle分析项目:steam付费游戏数据分析
python·游戏·数据分析
大模型真好玩7 分钟前
深入浅出LangChain AI Agent智能体开发教程(四)—LangChain记忆存储与多轮对话机器人搭建
前端·人工智能·python
love530love9 分钟前
命令行创建 UV 环境及本地化实战演示—— 基于《Python 多版本与开发环境治理架构设计》的最佳实践
开发语言·人工智能·windows·python·conda·uv
陪我一起学编程31 分钟前
MySQL创建普通用户并为其分配相关权限的操作步骤
开发语言·数据库·后端·mysql·oracle
都叫我大帅哥32 分钟前
深度学习的"Hello World":多层感知机全解指南
python·深度学习
麦子邪34 分钟前
C语言中奇技淫巧04-仅对指定函数启用编译优化
linux·c语言·开发语言
都叫我大帅哥37 分钟前
LangChain分层记忆解决方案:完整案例
python·langchain
小王子102442 分钟前
Django实时通信实战:WebSocket与ASGI全解析(下)
python·websocket·django
破刺不会编程1 小时前
linux线程概念和控制
linux·运维·服务器·开发语言·c++
alex1001 小时前
AI Agent开发学习系列 - langchain之LCEL(5):如何创建一个Agent?
人工智能·python·语言模型·langchain·prompt·向量数据库·ai agent