Excel合并/拆分多个工作表/簿(Python实现)

概述

在工作中,我们常会用到将EXCEL拆分/合并为多个工作表/簿,如全国的订单表,需要根据省份列拆分下发至对应的省、各省份数据需要汇总、...... 借助Python应该如何操作呢?

1. EXCEL拆分成多个工作表

需求:

根据 “省份” 列的不同值将数据拆分同一个工作簿下多个工作表。

操作:

仅需将 下述代码中的 文件路径、拆分字段名 替换你自己的即可

代码:

#  导入所需要的模块,没有就去终端安装 pip install pandas openpyxl
import pandas as pd
from openpyxl import Workbook
from openpyxl.utils.dataframe import dataframe_to_rows



# 读取需要拆分的excel 文件
file_path = 'D:/data/全国订单.xlsx'
df = pd.read_excel(file_path)
df.head()


# 创建一个新的 Excel 工作簿
wb = Workbook()
ws = wb.active


# 根据 省份 列内容拆分成多个工作表
for category in df['省份'].unique():
    df_category = df[df['省份'] == category]
    ws = wb.create_sheet(title=category)
    for r in dataframe_to_rows(df_category, index=False, header=True):
        ws.append(r)


# 保存工作簿
output_file = 'D:/data/aa.xlsx'
wb.save(output_file)

2. Excel合并多个工作表

需求:

将同一个工作簿下多个工作表根合并为一个工作表。

操作:

仅需将 下述代码中的 文件路径 替换你自己的即可

代码:

#  导入所需要的模块,没有就去终端安装 pip install pandas
import pandas as pd

# 读取 Excel 文件中的多个工作表
file_path = 'D:/data/各省订单.xlsx'
xl = pd.ExcelFile(file_path)
dfs = {sheet_name: xl.parse(sheet_name) for sheet_name in xl.sheet_names}

# 合并多个工作表数据为一个 DataFrame
combined_data = pd.concat(dfs.values(), ignore_index=True)

# 将合并后的数据保存到新的 Excel 文件
output_file = 'D:/data/全国_data.xlsx'
combined_data.to_excel(output_file, index=False)

3. EXCEL拆分成多个工作薄

需求:

根据 “省份” 列的不同值将数据拆分为多个工作簿。

操作:

仅需将 下述代码中的 文件路径、拆分字段名 替换你自己的即可

代码:

# 导入所需要的模块,没有就去终端安装 pip install pandas
import pandas as pd

# 读取原始 Excel 文件
file_path = 'D:/data/全国订单.xlsx'
df = pd.read_excel(file_path)
df.head()


# 根据列内容拆分成多个工作簿
for category in df['省份'].unique():
    df_category = df[df['省份'] == category]
    new_file_path = f'D:/data/{category}.xlsx'  # 新文件名
    df_category.to_excel(new_file_path, index=False)

4. Excel合并多个工作簿

需求:

将固定文件夹下的所有各省份数据,汇总成全国的订单表;

操作:

仅需将 下述代码中的 文件路径 替换你自己的即可;

代码:

# 导入所需要的模块,没有就去终端安装 pip install pandas/os
import os
import pandas as pd

# 读取原始文件路径
folder_path = 'D:/data/'


# 读取文件夹下所有 Excel 文件并合并
all_data = pd.DataFrame()
for file in os.listdir(folder_path):
    if file.endswith('.xlsx'):
        file_path = os.path.join(folder_path, file)
        df = pd.read_excel(file_path)
        all_data = pd.concat([all_data, df], ignore_index=True)


# 将合并后的数据保存到新的 Excel 文件
output_file = 'D:/data/全国订单.xlsx'
all_data.to_excel(output_file, index=False)

总结

仅需替换 代码中的 路径字段名 即可轻松实现Excel合并/拆分多个工作表/簿,是不是超级简单呢?快点收藏起来吧。

  • 21
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值