使用 Python 合并多个格式一致的 Excel 文件(推荐)

周叙
周叙
发布时间:2026-10-13| 4人浏览过
原创

本文介绍如何利用Python的xlrd和xlsxwriter模块,自动化合并多个格式一致的Excel文件。通过读取指定行并过滤空白及特定关键字行,最终生成包含所有数据的新Excel文件,解决手动复制粘贴的低效问题。

一 问题描述

近期,一位朋友在工作中遇到一个数据处理难题:她每天需要处理一批结构相同的Excel表格。这些表格均只包含一个工作表(sheet),前两行分别为表格标题和表头,最后一行则是相关人员的签字栏。她的目标是将这批表格的内容整合到同一个Excel文件中,形成一张完整的表格。在咨询我之前,她每天花费大量时间进行手动复制和粘贴操作。表格的具体样式如下所示:

二 需求分析

根据描述,最终需求可以明确为:从这批表格中任选一个表格,提取其前两行作为新表格的标题和表头,并将这两行内容以嵌套列表的形式存入一个名为 data 的空列表中。接着,遍历每张表格的第3行至倒数第二行,剔除其中的空白行内容。将所有表格的有效内容以子列表的形式依次追加到 data 列表中。最后,将任取表格的最后一行(签字栏)以子列表形式插入 data 列表。完成数据收集后,将 data 列表的内容写入一个新的Excel文件中。

三 查阅资料

经过简短的资料查询,得出以下结论:

3.1 利用 xlrd 和 xlsxwriter 模块即可解决此需求;

3.2 选择 xlrd 和 xlsxwriter 的原因在于:xlrd 擅长读取Excel文件但不适合写入,而 xlsxwriter 适合进行大规模Excel表格的写入操作,且不会报错。

四 编码

以解决当前问题为导向,立即开始编码。 coding … …


# -*- coding:utf-8 -*-
import os, xlrd, xlsxwriter
source_dir = r'input'
new_execl = "All in one.xlsx"
raw_excels = os.listdir(source_dir)
keyword = "油站经理" # 除包括此关键字的行均插入
data = []
filename = os.path.join(source_dir, raw_excels[0])
wb = xlrd.open_workbook(filename)
sheet = wb.sheets()[0]
data.append(sheet.row_values(0))
data.append(sheet.row_values(1))
for excel in raw_excels:
 filename = os.path.join(source_dir, excel)
 wb = xlrd.open_workbook(filename)
 sheet = wb.sheets()[0]
 for row_num in range(2, sheet.nrows):
  row_values = [str(i) for i in sheet.row_values(row_num)]
  if len(''.join(row_values)) and (keyword not in ''.join(row_values)):
   data.append(sheet.row_values(row_num))
data.append(sheet.row_values(sheet.nrows-1))
new_wb = xlsxwriter.Workbook(new_execl)
worksheet = new_wb.add_worksheet()
font = new_wb.add_format({"font_size":11})
for i in range(len(data)):
 for j in range(len(data[i])):
  worksheet.write(i, j, data[i][j], font)
new_wb.close()

半小时后,大功告成!

五 使用说明

5.1 下载安装 Python3.X(具体安装步骤请自行查阅相关资料);

5.2 安装 xlrd 和 xlsxwriter 模块,参考命令: pip install xlrd xlsxwriter。在执行此步骤前,可能需要先升级pip,具体升级命令系统会提示,直接复制粘贴即可;

5.3 新建一个名为 input 的文件夹,将需要合并的文件复制到此文件夹下;

5.4 将上述代码保存为 excels_merge.py 文件,并置于与 input 文件夹同级的目录中。双击鼠标稍等片刻即可运行。如果没有关联打开方式,可以在资源管理器的地址栏输入“cmd”,在打开的命令窗口中输入:python excels_merge.py。生成的 All in one.xlsx 即为合并后的新Excel文件。

六 总结

6.1 [str(i) for i in sheet.row_values(row_num)] 这段代码的作用是将列表内的元素统一转化为字符串,主要是为了下一行代码实现将列表转换为字符串做准备;

6.3 此脚本不对源Excel文件进行任何修改操作,可以放心使用;

6.4 以上脚本为初步实现,未进行优化。如果未来数据量过大,可能会考虑优化代码,欢迎大家多提意见或建议;

6.5 源代码可以访问我的同名CSDN博客及GitHub获取。

总结

以上所述是小编给大家介绍的使用Python合并多个格式一致的Excel文件的方法,希望对大家有所帮助。如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对本站网站的支持!如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。