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

 更新时间:2019年12月09日 13:12:01   作者:MRIVANDU  
这篇文章主要介绍了使用 Python 合并多个格式一致的 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学习笔记之Zip和Enumerate用法实例分析

    Python学习笔记之Zip和Enumerate用法实例分析

    这篇文章主要介绍了Python学习笔记之Zip和Enumerate用法,结合实例形式分析了Zip和Enumerate的功能、用法及相关操作注意事项,需要的朋友可以参考下
    2019-08-08
  • Python基础 括号()[]{}的详解

    Python基础 括号()[]{}的详解

    这篇文章主要介绍了Python基础 括号()、[]、{},下面文章将围绕这三个括号的相关解析展开内容,需要的朋友可以参考一下,洗碗粉对你有所帮助
    2021-11-11
  • python3.7环境下安装Anaconda的教程图解

    python3.7环境下安装Anaconda的教程图解

    这篇文章主要介绍了python3.7环境下安装Anaconda的教程,本文图文并茂给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-09-09
  • 用Python编写一个简单的俄罗斯方块游戏的教程

    用Python编写一个简单的俄罗斯方块游戏的教程

    这篇文章主要介绍了用Python编写一个简单的俄罗斯方块游戏的教程,编写俄罗斯方块几乎是每门编程语言基础学习后的必备实践,需要的朋友可以参考下
    2015-04-04
  • Python 中省略号对象的使用

    Python 中省略号对象的使用

    作为一名经验丰富的 Python 开发人员,您可能遇到过 Python 中的三个点…省略号对象, 如果您尝试在 Python 解释器中打印此内容,它将显示一个省略号,本篇文章将介绍 Python 中省略号对象的使用,感兴趣的朋友跟随小编一起看看吧
    2023-10-10
  • Requests库实现数据抓取与处理功能

    Requests库实现数据抓取与处理功能

    本文介绍了Python中常用的第三方库Requests的基本用法和高级功能,我们学习了如何发起HTTP请求、处理响应、使用会话对象、设置代理和证书验证等技巧,需要的朋友可以参考下
    2023-05-05
  • Python按键或值对字典进行排序

    Python按键或值对字典进行排序

    这篇文章主要为大家介绍了Python对字典进行排序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-12-12
  • Python著名游戏实战之方块连接 我的世界

    Python著名游戏实战之方块连接 我的世界

    读万卷书不如行万里路,学的扎不扎实要通过实战才能看出来,本篇文章手把手带你模仿著名游戏——我的世界,大家可以在过程中查缺补漏,看看自己掌握程度怎么样
    2021-10-10
  • Python表格数据处理库之tablib库详解

    Python表格数据处理库之tablib库详解

    这篇文章主要介绍了Python表格数据处理库之tablib库详解,Tablib是一个用于处理电子表格数据的Python库,它可以轻松地进行数据的导入和导出,以及数据格式的转换,需要的朋友可以参考下
    2023-08-08
  • python学习数据结构实例代码

    python学习数据结构实例代码

    数据结构就是用来将数据组织在一起的结构。换句话说,数据结构是用来存储一系列关联数据的东西。在Python中有四种内建的数据结构,分别是List、Tuple、Dictionary以及Set。本文将通过实例来介绍这些数据结构的用法。
    2015-05-05

最新评论