4种方法用Python批量实现多Excel多Sheet合并_excel表格自动合成python

import pandas as pd  
  
# 读取Excel文件  
file_list = ['file1.xlsx', 'file2.xlsx']  
dfs = [pd.read_excel(file) for file in file_list]  
  
# 合并多个工作表  
result = pd.concat(dfs, ignore_index=True)  
  
# 保存到新的Excel文件  
result.to_excel('merged.xlsx', index=False)

方法二:使用openpyxl库

Openpyxl是Python中处理Excel文件的库,可以直接操作Excel文件。我们可以使用openpyxl的load_workbook()函数读取Excel文件,然后使用Workbook和Worksheet类创建新的工作簿和工作表,将多个工作表的数据复制到新的工作表中,最后保存为新的Excel文件。

from openpyxl import load_workbook  
from openpyxl.utils import get_column_letter  
from openpyxl.utils import range_boundaries  
from openpyxl.writer.excel import save_virtual_workbook  
from openpyxl import Workbook  
from openpyxl.utils import get_column_letter  
from openpyxl.utils.dataframe import dataframe_to_rows  
  
# 读取Excel文件  
file_list = ['file1.xlsx', 'file2.xlsx']  
merged_wb = Workbook()  
merged_ws = merged_wb.active  
merged_ws.title = "merged"  
headers = []  # 存储每个工作表的列名  
for file in file_list:  
    wb = load_workbook(filename=file)  
    ws = wb.active  # 获取第一个工作表  
    for row in ws[1:]:  # 获取列名  
        headers.append(row[0].value)  # 将列名添加到headers列表中  
    for row in ws:  # 获取数据行并复制到新的工作表中  
        new_row = []  # 存储新的一行数据  
        for cell in row:  # 遍历每个单元格并复制数据到新的行中  
            new_row.append(cell.value)  # 将单元格的值添加到新的行中  
        dataframe_to_rows(pd.DataFrame([new_row], columns=headers), index=False).map(lambda x: x.pop('Unnamed: 0'), axis=1).map(int).to_excel(merged_ws, index=False, header=False)  # 将新的行复制到新的工作表中,并设置数据类型为整数型  
merged_wb.save("merged.xlsx")  # 保存为新的Excel文件

方法三:使用xlrd和xlwt库

xlrd和xlwt是Python中用于读写Excel文件的库,可以处理.xls和.xlsx格式的文件。我们可以使用xlrd的open_workbook()函数读取Excel文件,然后使用Worksheet类获取工作表对象,遍历工作表中的所有数据,将数据写入新的Excel文件中。

import xlrd  
import xlwt  
  
# 读取Excel文件  
file_list = ['file1.xls', 'file2.xls']  
workbook = xlrd.open_workbook(file_list[0])  
  
# 创建新的Excel文件  
new_workbook = xlwt.Workbook()  
new_sheet = new_workbook.add_sheet('merged')  
  
# 获取第一个工作表  
sheet = workbook.sheet_by_index(0)  
  
# 合并多个工作表  
row = 0  # 当前行的索引  
for col in range(sheet.ncols):  # 遍历所有列  
    new_sheet.write(row, col, sheet.cell_value(0, col))  # 将列名写入新的工作表中  
    for row in range(1, sheet.nrows):  # 遍历所有数据行  
        new_sheet.write(row + row, col, sheet.cell_value(row, col))  # 将数据写入新的工作表中  
  
new_workbook.save('merged.xls')  # 保存为新的Excel文件

方法四:使用os和glob库

如果需要批量处理多个文件夹中的多个Excel文件,可以使用os和glob库来获取所有需要处理的文件。然后使用上述方法处理每个文件中的多个工作表,最后将结果保存到新的Excel文件中。

import os  
import glob  
import pandas as pd  
  
# 获取所有需要处理的Excel文件  
file_list = []  
folder_path = 'path/to/folder'  # Excel文件所在的文件夹路径  
for file in glob.glob(os.path.join(folder_path, '*.xlsx')):  # 获取所有.xlsx文件  
    file_list.append(file)  
  
# 合并多个工作表并保存到新的Excel文件中  
result = pd.DataFrame()  # 存储合并后的数据  
for file in file_list:  
    df = pd.read_excel(file)  # 读取Excel文件中的数据到DataFrame中  
    result = pd.concat([result, df])  # 将数据追加到结果中  
result.to_excel('merged.xlsx', index=False)  # 将结果保存到新的Excel文件中

在上述方法中,我们可以根据实际需求选择适合的方法进行多Excel多Sheet的合并。方法一和方法二适用于处理单个Excel文件中的多个工作表,而方法三和方法四则适用于批量处理多个Excel文件中的多个工作表。在实际应用中,我们可以根据数据量的大小、处理速度的要求以及个人偏好选择适合的方法。
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注Python)

端开发知识点,真正体系化!**

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注Python)

img
  • 22
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值