4种方法用Python批量实现多Excel多Sheet合并

这篇具有很好参考价值的文章主要介绍了4种方法用Python批量实现多Excel多Sheet合并。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

方法一:使用pandas库

方法二:使用openpyxl库

方法三:使用xlrd和xlwt库

方法四:使用os和glob库


在数据处理中,经常需要将多个Excel文件中的多个工作表进行合并。以下介绍了4种方法,使用Python批量实现多Excel多Sheet的合并。

4种方法用Python批量实现多Excel多Sheet合并,关于python那些事儿,python,excel,开发语言

方法一:使用pandas库

Pandas是Python中常用的数据处理库,提供了简便的数据处理功能。我们可以使用pandas的read_excel()函数读取Excel文件,然后使用concat()函数将多个工作表进行合并。

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文件中的多个工作表。在实际应用中,我们可以根据数据量的大小、处理速度的要求以及个人偏好选择适合的方法。

注意事项

使用Python批量实现多Excel多Sheet合并时,需要注意以下事项:

  1. 文件路径和文件名:确保提供的文件路径和文件名正确无误,避免出现文件找不到或路径错误的情况。
  2. 文件格式和版本:确保所有要合并的Excel文件都是相同格式(如.xlsx)和版本,以免出现不兼容或读取错误。
  3. 表格格式和内容:在合并前,检查每个工作表的结构和内容是否一致,是否存在不同的列或数据类型。如果有差异,需要进行相应的处理或调整。
  4. 空值和缺失值:在合并过程中,可能会遇到空值或缺失值的情况。需要对这些值进行适当处理,例如填充、忽略或保留原始格式。
  5. 重复数据:合并多个Excel文件时,可能会存在重复的数据行。需要编写适当的逻辑来处理这些重复数据,例如保留最新的数据或根据特定条件进行筛选。
  6. 性能和内存使用:对于大量数据和多个Excel文件的合并操作,需要注意程序的性能和内存使用情况。如果数据量较大,可能需要考虑分批处理或使用更高效的数据处理方法。
  7. 错误处理:在合并过程中,可能会遇到各种错误,如文件损坏、格式不正确等。编写适当的错误处理逻辑可以帮助识别和处理这些错误,避免程序崩溃或数据丢失。
  8. 代码可维护性和可读性:编写易于理解和维护的代码可以提高代码的质量和可读性。注释、清晰的变量名和使用有意义的函数和方法名称等都是提高代码可读性的有效方法。
  9. 文档和注释:为代码添加文档和注释可以帮助其他人理解你的代码逻辑和实现方式。这对于团队合作或代码维护非常有用。
  10. 测试和验证:在合并之前,对每个单独的Excel文件进行测试和验证可以确保合并操作的有效性和准确性。通过比较合并前后的数据,可以发现潜在的问题并进行相应的修复。

此外,除了上述方法外,还有一些第三方库如pyexcelerate等也可以实现多Excel多Sheet的合并。这些库提供了更多的功能和灵活性,可以根据实际需求选择适合的库进行使用。文章来源地址https://www.toymoban.com/news/detail-803599.html

到了这里,关于4种方法用Python批量实现多Excel多Sheet合并的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python批量合并Excel表

    现收集到多个Excel表,需要对这些表进行汇总合并。但是这些Excel表并不规则,有不少空列,而且这些列名虽然一致,但是顺序各不相同,所以汇总起来并不是那么简单。单独的一个Excel表显示如下: Excel表 起初考虑用openpyxl,但是由于问题较为复杂,最后决定用os和pandas来解

    2024年02月14日
    浏览(29)
  • Python实现Excel中的sheet复制(可跨文件操作、可保留原格式)

    使用说明: src_xlsx 源Excel文件 ssheetname 源Excel文件中需要复制的sheet dst_xlsx 目标Excel文件 nsheetname 目标Excel文件中复制后的sheet 注意: 上述函数只能复制内容,不能保留Excel中的格式,例如字体、背景色等。如果有需要保留原格式,请使用下面下一个函数。 代码解析: 该方法

    2024年02月03日
    浏览(31)
  • 将多个EXCEL 合并一个EXCEL多个sheet

    合并老版本xls using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using NPOI.HSSF.UserModel; using System.IO; using NPOI.XSSF.UserModel; namespace Merge_Excel {     public partial class Form1

    2024年02月10日
    浏览(30)
  • 多个excel的sheet合并到一个excel下

    目标:多个excel的sheet合并到一个excel下(不同sheet) 要求:原始数据不同excel中的sheet名不同

    2024年02月13日
    浏览(30)
  • Python解析Excel及检测合并单元格的方法

    Python解析扩展名为 .xlsx 的方法: 1. 导入 openpyxl模块 2. 导入Excel表格文件 使用 load_workbook() 方法读取Excel文件,该方法返回一个工作簿对象。 load_workbook()方法只能读取已有的Excel表格文件,无法创建新的Excel表格。 3. 获取Sheet工作表 4. 获取最大行和列 5. 获取单元格的值 以该表

    2024年02月16日
    浏览(35)
  • 【代码】Python实现Excel数据合并

    通过遍历指定目录下的多个Excel文件,将它们的数据合并到一个新的Excel文件中,实现Excel数据合并的功能。 代码的主要流程如下: 导入所需的库:os用于文件路径操作,openpyxl用于处理Excel文件。 定义目录路径和保存的新文件名:将要合并的Excel文件所在的目录路径赋值给d

    2024年02月16日
    浏览(31)
  • 用Python实现批量创建Excel文件

    小编简单写了一个批量创建Excel文件的实例 实例代码: 这段Python代码使用了 xlwings 库来操作Excel。 xlwings 是一个允许你从Python中读写Excel文件(.xlsx)的库,并且它还提供了很多其他的功能,如创建图表、执行宏等。 下面是代码的逐行解释: import xlwings as xw :导入 xlwings 库,

    2024年02月22日
    浏览(29)
  • excel(wps)之vlookup函数合并sheet数据

    VLOOKUP函数是Excel中的一个纵向查找函数,它与LOOKUP函数和HLOOKUP函数属于一类函数,在工作中都有广泛应用,例如可以用来核对数据,多个表格之间快速导入数据等函数功能。功能是按列查找,最终返回该列所需查询列序所对应的值;与之对应的HLOOKUP是按行查找的。 VLOOKUP函数

    2024年01月24日
    浏览(30)
  • 【MATLAB】多个Excel表合并(按行、按列、按Sheet

    by 今天不飞了 之前发了生成excel表和合并excel表的文章,各种需求就来了…… 在这里把几种基础的合并方法分享给大家,其他花里胡哨的筛选合并就不要问我了。整理excel真的很无聊,给钱也不做……除非“你给得太多” 提供“文件路径,新excel文件名,合并类型”即可 新建

    2024年02月09日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包