使用 Python 拆分与合并 Excel 文档:告别繁琐,拥抱自动化

在日常工作中,Excel 电子表格无疑是最常用的数据处理工具之一。然而,当面对大量需要拆分或合并的 Excel 文件时,手动操作不仅耗时耗力,还极易出错。您是否也曾为了将一个包含多个工作表的 Excel 文件拆分成独立文件,或者将多个 Excel 文件的数据汇总到一个文件中而感到头疼?

别担心!Python 作为一款强大的编程语言,可以帮助我们轻松实现 Excel 文件的自动化处理。本文将为您详细介绍如何使用 Spire.XLS for Python 库,高效地完成 Excel 工作表的拆分与多个 Excel 文件的合并操作,让您告别繁琐,拥抱自动化办公的便捷。

为何选择 Spire.XLS for Python 处理 Excel?

Spire.XLS for Python 是一个功能强大、易于使用的 Python Excel 库,专为处理 Excel 文件而设计。它具有以下显著优势:

  • 功能全面: 支持创建、读取、写入、编辑和转换各种 Excel 文件格式(如 XLSX、XLS、CSV 等)。
  • 无需安装 Office: 独立运行,无需在您的机器上安装 Microsoft Office 或其他 Excel 软件。
  • 高性能: 能够高效处理大型 Excel 文件,满足企业级应用需求。
  • API 友好: 提供直观的 API 接口,让开发者能够轻松上手。

在开始之前,请确保您已安装 Spire.XLS for Python 库。您可以通过以下命令进行安装:

复制代码
pip install Spire.XLS

实战演练一:使用 Python 拆分 Excel 工作表

想象一下,您有一个包含多个部门数据的工作簿,每个部门的数据都在一个独立的工作表中。现在,您需要将每个部门的工作表导出为独立的 Excel 文件。Spire.XLS for Python 可以轻松实现这一需求。

准备源文件

假设您有一个名为 SourceData.xlsx 的 Excel 文件,其中包含多个工作表,例如"销售部"、"市场部"和"研发部"。

拆分工作表代码实现

以下是实现工作表拆分的 Python 代码:

python 复制代码
from spire.xls import *
from spire.xls.common import *

# 创建一个工作簿对象
workbook = Workbook()
# 加载源 Excel 文件
workbook.LoadFromFile("SourceData.xlsx")

# 遍历工作簿中的每一个工作表
for i, sheet in enumerate(workbook.Worksheets):
    # 创建一个新的工作簿来保存当前工作表
    newWorkbook = Workbook()
    
    # 清除新工作簿中的默认工作表,以便添加当前工作表
    newWorkbook.Worksheets.Clear()
    
    # 将当前工作表复制到新的工作簿中
    newWorkbook.Worksheets.AddCopy(sheet)
    
    # 构建新的文件名,例如:销售部.xlsx
    outputFileName = sheet.Name + ".xlsx"
    
    # 将新的工作簿保存为独立的 Excel 文件
    newWorkbook.SaveToFile(outputFileName, ExcelVersion.Version2016)
    newWorkbook.Dispose() # 释放资源

workbook.Dispose() # 释放源工作簿资源
print("Excel 工作表拆分完成!")

代码解释:

  1. 我们首先加载了 SourceData.xlsx 文件。
  2. 然后,我们遍历了源工作簿中的每一个工作表。
  3. 在循环内部,为每个工作表创建了一个新的 Workbook 对象。
  4. 使用 newWorkbook.Worksheets.AddCopy(sheet) 将当前工作表完整地复制到新的工作簿中。
  5. 最后,根据工作表的名称构造新的文件名,并使用 newWorkbook.SaveToFile() 方法将其保存为独立的 Excel 文件。

实战演练二:使用 Python 合并多个 Excel 文件

与拆分操作相反,有时我们需要将多个独立的 Excel 文件合并到一个新的工作簿中,例如汇总不同区域的销售数据。

准备待合并文件

假设您有多个 Excel 文件,例如 RegionA.xlsx、RegionB.xlsx 和 RegionC.xlsx,每个文件都包含一些数据,并且您希望将它们的工作表都合并到一个新的 Excel 文件中。

合并 Excel 文件代码实现

以下是实现多个 Excel 文件合并的 Python 代码:

python 复制代码
from spire.xls import *
from spire.xls.common import *
import os

# 待合并的 Excel 文件列表
files_to_merge = ["RegionA.xlsx", "RegionB.xlsx", "RegionC.xlsx"]
output_merged_file = "MergedData.xlsx"

# 创建一个新的工作簿作为合并的目标文件
new_workbook = Workbook()

# 清除新工作簿中的默认工作表,以便添加来自源文件的工作表
new_workbook.Worksheets.Clear()

# 创建一个临时工作簿用于加载每个源文件
temp_workbook = Workbook()

# 遍历待合并的文件列表
for file_path in files_to_merge:
    if os.path.exists(file_path):
        # 加载每个源 Excel 文件
        temp_workbook.LoadFromFile(file_path)
        
        # 将源文件中的每一个工作表复制到新的工作簿中
        for sheet in temp_workbook.Worksheets:
            new_workbook.Worksheets.AddCopy(sheet, WorksheetCopyType.CopyAll)
        
        temp_workbook.Dispose() # 释放临时工作簿资源
    else:
        print(f"文件不存在,跳过: {file_path}")

# 将合并后的新工作簿保存到文件
new_workbook.SaveToFile(output_merged_file, ExcelVersion.Version2016)
new_workbook.Dispose() # 释放新工作簿资源
print(f"Excel 文件合并完成!合并到:{output_merged_file}")

代码解释:

  1. 我们定义了一个 files_to_merge 列表,其中包含所有待合并的 Excel 文件名。
  2. 创建了一个新的 new_workbook 作为合并后的目标文件。
  3. 遍历 files_to_merge 列表,对于每个文件: • 使用 temp_workbook.LoadFromFile() 加载源文件。 • 再次遍历源文件中的所有工作表,并使用 new_workbook.Worksheets.AddCopy() 将它们复制到 new_workbook 中。
  4. 最后,将包含所有合并工作表的 new_workbook 保存为 MergedData.xlsx。

总结

通过本文的介绍和实战代码示例,您应该已经掌握了如何使用 Spire.XLS 库高效地拆分 Excel 工作表和合并多个 Excel 文件。Python 在 Excel 自动化处理中的强大能力,能够显著提高您的数据处理效率,减少人工错误,让您有更多时间专注于数据的分析和决策。

相关推荐
ん贤3 小时前
GO项目开发规范文档解读
开发语言·后端·golang
ChineHe3 小时前
Golang语言基础篇003_数组、切片、map详解
开发语言·后端·golang
Ryana3 小时前
《我是如何实现 73% 人效提升的》—评论排序频繁变更拒绝“硬编码”
后端·架构
databook3 小时前
Manim实现镜面反射特效
后端·python·动效
xrkhy3 小时前
SpringBoot面试
spring boot·后端·面试
Frank_zhou3 小时前
RuoYi-Cloud-Plus 微服务架构文档
后端
Java水解3 小时前
Spring Data JPA与Kingbase数据库的完美邂逅:构建高效数据持久层
后端·spring
我是华为OD~HR~栗栗呀3 小时前
22届考研(华为oD)-Java面经
java·c++·后端·python·考研·华为od·华为