python 按照sheet合并多个Excel的示例代码(多个sheet)

yizhihongxing

本示例教程将介绍如何使用Python语言在多个Excel文件中按照sheet将数据合并到一个文件中。该示例包含两种不同的示例,一种是将多个Excel文件中同样命名的sheet合并到一个Excel文件的同一个Sheet中;另一种是将多个Excel文件中不同命名的sheet分别合并到一个新的Excel文件的同名Sheet中。

步骤一 - 安装需要的Python库

在Python中实现Excel文件的读写需要安装pandasopenpyxl库。在运行脚本之前,请确保在您的环境中已经安装这两个库。您可以使用以下命令进行安装:

pip install pandas openpyxl

步骤二 - 将所有Excel文件中的Sheet合并到同一文件的同一个Sheet下

首先,我们需要读取多个Excel文件中相同Sheet名称的所有Sheet,并将他们合并到一个Excel文件的同一Sheet下。假设所有的Excel文件都存储在/path/to/files/目录下。

import pandas as pd
import os

# 定义要读取的文件夹
folder_path = '/path/to/files/'

# 定义要读取的相同Sheet名称
sheet_name = 'Sheet1'

# 创建要写入的Excel文件对象
writer = pd.ExcelWriter('merged.xlsx', engine='openpyxl')

# 创建空DataFrame对象
merged_data = pd.DataFrame()

# 读取所有Excel文件中指定的Sheet,并将它们合并到merged_data中
for file_name in os.listdir(folder_path):
    file_path = os.path.join(folder_path, file_name)
    if os.path.isfile(file_path) and file_name.endswith('.xlsx'):
        data = pd.read_excel(file_path, sheet_name=sheet_name)
        merged_data = merged_data.append(data, ignore_index=True)

# 将合并后的数据写入到新的Excel文件中
merged_data.to_excel(writer, sheet_name=sheet_name, index=False)

# 保存Excel文件并关闭writer对象
writer.save()
writer.close()

代码解释:

  • folder_path 变量用于定义要读取的文件夹位置。
  • sheet_name 变量用于定义要读取的sheet名称。
  • writer 对象用于创建新的Excel文件对象,engine 指定使用 openpyxl 库进行写操作。
  • merged_data 变量用于创建一个空的 Pandas DataFrame 对象用于存储数据。
  • 使用 os.listdir() 函数读取文件夹中所有文件名。
  • 使用 os.path.join() 函数获取文件的完整路径。
  • 使用 os.path.isfile() 函数判断文件是不是一个文件。
  • 使用 file_name.endswith('.xlsx') 来过滤掉不是 Excel 文件的文件。
  • 使用 Pandas 的 read_excel()函数读取 Excel 文件的指定 sheet 数据。
  • 使用 Pandas 的 append() 函数把每个 Excel 文件中的数据按行合并到 merged_data 中。
  • 使用 Pandas 的 to_excel() 函数把合并后的数据写入到一个新的 Excel 文件中。
  • 使用 writer.save() 保存新的 Excel 文件。
  • 使用 writer.close() 关闭文件对象。

在上述示例代码中,我们将多个Excel文件中同名称的Sheet合并到一个名为Sheet1的Excel文件中,并保存到当前工程目录下的一个名为merged.xlsx的工作簿中。

步骤三 - 将多个Excel文件中的不同命名的Sheet合并到同一文件的不同同名Sheet下

另一个常见的需求是将多个Excel文件中不同名称的Sheet分别合并到一个新的Excel文件的同名Sheet下。下面是示例代码,假设所有的Excel文件都存储在/path/to/files/目录下。

import pandas as pd
import os

# 定义要读取的文件夹
folder_path = '/path/to/files/'

# 创建要写入的Excel文件对象
writer = pd.ExcelWriter('merged.xlsx', engine='openpyxl')

# 读取所有Excel文件中的所有Sheet
for file_name in os.listdir(folder_path):
    file_path = os.path.join(folder_path, file_name)
    if os.path.isfile(file_path) and file_name.endswith('.xlsx'):
        with pd.ExcelFile(file_path) as xlsx:
            for sheet_name in xlsx.sheet_names:
                # 读取每个Sheet的数据
                data = pd.read_excel(xlsx, sheet_name=sheet_name)
                # 将数据写入到新文件的同名Sheet
                data.to_excel(writer, sheet_name=sheet_name, index=False)

# 保存Excel文件并关闭writer对象
writer.save()
writer.close()

代码解释:

  • folder_path 变量用于定义要读取的文件夹位置。
  • writer 对象用于创建新的 Excel 文件对象。
  • 使用 os.listdir() 函数读取文件夹中的所有文件名。
  • 使用 os.path.join() 函数获取文件的完整路径。
  • 使用 os.path.isfile() 函数来判断文件是否为一个文件。
  • 使用 file_name.endswith('.xlsx') 来过滤掉不是 Excel 文件的文件。
  • 使用 pd.ExcelFile() 函数返回 Excel 文件对象。
  • 使用 ExcelFile.sheet_names() 函数获取 Excel 文件中所有 Sheet 名称。
  • 使用 Pandas 的 read_excel() 函数为每个 sheet 读取数据。
  • 使用 to_excel() 函数将数据写入到新文件的同名Sheet。
  • 使用 writer.save() 保存新的 Excel 文件。
  • 使用 writer.close() 关闭文件对象。

在上述示例代码中,我们将多个Excel文件中不同命名的Sheet分别合并到一个新的 Excel 文件的同名Sheet下,并保存到当前工程目录下的名为merged.xlsx的工作簿。

这两个示例代码可以很容易地实现将同一文件夹中所有 Excel 文件中的数据按照不同需求进行合并,为日常工作处理Excel文件提供了很好的方法和思路。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python 按照sheet合并多个Excel的示例代码(多个sheet) - Python技术站

(0)
上一篇 2023年5月14日
下一篇 2023年5月14日

相关文章

  • python逆向微信指数爬取实现步骤

    下面是“Python逆向微信指数爬取实现步骤”的完整攻略。 步骤一:安装依赖库 在开始实现微信指数爬取之前,需要安装一些依赖库: requests:用于请求数据; execjs:用于执行JS代码; pandas:用于处理数据; numpy:用于科学计算。 你可以使用以下命令进行安装: pip install requests execjs pandas nu…

    python 2023年5月23日
    00
  • 详解Python requests模块

    以下是关于Python requests模块的详细攻略: Python requests模块 requests是一个流行的HTTP库,用于向Web服务器发送HTTP请求和接收响应。以下是Python requests模块的详细攻略: 发送HTTP请求 以下是使用requests模块发送HTTP请求的示例: import requests url = ‘htt…

    python 2023年5月14日
    00
  • python列表[list]和元组(tuple)详情

    Python列表[list]和元组(tuple)详情 在Python中,列表(List)和元组(Tuple)都是有序的集合,可以存储任意类型的数据,包括数字、字符串、甚至是其他列表或元组。本文将详细讲解Python列表和元组的区别、创建、访问、添加、删除、排序等操作,并提供两个实例说明。 列表(List) 列表是一种可变的有序集合,可以通过索引访问、添加、删…

    python 2023年5月13日
    00
  • 基于多进程中APScheduler重复运行的解决方法

    我们来详细讲解一下基于多进程中APScheduler重复运行的解决方法。 1. 问题描述 在多进程环境下,如果使用APScheduler来进行任务调度,可能会出现多个进程同时执行了同一个调度任务的情况,导致任务重复执行的问题。 2. 解决方法 解决这个问题的主要思路是在所有进程中只有一个进程执行任务,而其他进程只是等待执行结果。实现这个思路的具体方法是使用共…

    python 2023年5月19日
    00
  • 19个Python Sklearn中超实用的隐藏功能分享

    关于“19个Python Sklearn中超实用的隐藏功能分享”的完整攻略 1. 背景介绍 Sklearn是Python科学计算中一个非常重要的库,它集成了各种机器学习算法,同时还提供了许多辅助工具,用于数据的预处理、模型选择和评估。本攻略主要分享Sklearn中的一些隐藏功能,帮助大家更好的使用和理解这个库。 2. 隐藏功能介绍 2.1. 随机森林的fea…

    python 2023年6月3日
    00
  • Python – 解决这个问题的干净方法?

    【问题标题】:Python – a clean approach to this problem?Python – 解决这个问题的干净方法? 【发布时间】:2023-04-03 05:47:01 【问题描述】: 我无法选择解决问题的最佳数据结构。 问题如下: 我有一个嵌套的身份代码列表,其中子列表的长度不同。 li = [[‘abc’, ‘ghi’, ‘lm…

    Python开发 2023年4月8日
    00
  • 详解C语言和Python中的线程混用

    详解C语言和Python中的线程混用 在C语言和Python中,线程是一种常用的并发编程方式。本文将详细介绍如何在C语言和Python中混用线程,并提供两个示例。 C语言中的线程 在C语言中,线程是通过pthread库来实现的。以下是一个使用pthread库创建线程的示例: #include <stdio.h> #include <pthr…

    python 2023年5月15日
    00
  • Python函数基础实例详解【函数嵌套,命名空间,函数对象,闭包函数等】

    Python函数基础实例详解 一、函数嵌套 函数嵌套指的是在一个函数内部定义另一个函数,被定义的函数通常被称为子函数或嵌套函数,它可以访问父函数的局部变量,但是父函数不能访问子函数的局部变量。 示例一: def outer(): x = 1 def inner(): print(x) inner() outer() 运行结果为: 1 在这个示例中,内部函数 …

    python 2023年6月5日
    00
合作推广
合作推广
分享本页
返回顶部