一 问题描述

最近朋友在工作中遇到这样一个问题,她每天都要处理如下一批 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, xlsxwritersource_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 文件相关推荐

  1. python 视频字幕合并_用Python合并两个srt格式的电影字幕文件

    1.项目介绍 喜欢在电脑上看电影的朋友应该都知道,下载完成的电影,如果要另外配上字幕文件,最常见的就是srt和ass格式. 字幕文件里面出现的小错误,喜欢较真的朋友可以用记事本打开了直接修改就行. 但 ...

  2. 如何利用python整合excel_使用 Python 合并多个格式一致的 Excel 文件(推荐)

    一 问题描述 最近朋友在工作中遇到这样一个问题,她每天都要处理如下一批 Excel 表格:每个表格的都只有一个 sheet,表格的前两行为表格标题及表头,表格的最后一行是相关人员签字.最终目标是将每个 ...

  3. 如何利用python将excel表格中筛选出来的每一份数据各自另存为新的excel文件?

    如何利用python将excel表格中筛选出来的每一份数据各自另存为新的excel文件? 1.问题描述 2.解决过程 2.1 问题分析: 2.2 解决思路 3.运行结果 1.问题描述 最近在处理一堆工 ...

  4. python利用pandas合并excel表格代码_利用Python pandas对Excel进行合并的方法示例

    前言 在网上找了很多Python处理Excel的方法和代码,都不是很尽人意,所以自己综合网上各位大佬的方法,自己进行了优化,具体的代码如下. 博主也是新手一枚,代码肯定有很多需要优化的地方,欢迎各位大 ...

  5. python合并excel文件关键字_使用 Python 合并多个格式一致的 Excel 文件,Excel 表格...

    一 问题描述 最近朋友在工作中遇到这样一个问题,她每天都要处理如下一批 Excel 表格:每个表格的都只有一个 sheet,表格的前两行为表格标题及表头,表格的最后一行是相关人员签字.最终目标是将每个 ...

  6. python两个数据框合并_关于python 2.7:python2 pandas:如何将另一个数据框的一部分合并到一个数据框...

    我有一个dataframe(df1)如下: datetime     m  d    1d    2d   3d 2014-01-01   1  1     2     2   3 2014-01-0 ...

  7. python中numpy数组的合并_基于Python中numpy数组的合并实例讲解

    基于Python中numpy数组的合并实例讲解 Python中numpy数组的合并有很多方法,如 - np.append() - np.concatenate() - np.stack() - np. ...

  8. python数据提取和合并_用Python提取和合并Excel数据

    我有一个Excel(.xlsx)文件,大约有40个工作表.每个工作表具有相同的结构,但包含不同的数据.我想从每张表格中提取信息,并将其合并到一张表格中,每张表格中的信息一张叠一张地叠在一起.我需要从每 ...

  9. python如何输入多行数据合并_关于Python中的合并字典,这些问题必须搞清楚!

    全文共1474字,预计学习时长6分钟 图源:unsplash Python 3.9现在处于初始开发阶段,但其中让人惊喜的新功能可不少.其中一个是颠覆性的,它能使处理Python字典时编写的代码更具可读 ...

最新文章

  1. ubuntu开辟虚拟内存
  2. window.print()方法,如何获取打印弹框显示状态
  3. windowsDOS命令
  4. 【转载】程序员技术练级攻略
  5. 轻量级ORM框架 【Dapper】 的使用
  6. mysql 查看密码_Ubuntu安装和配置MySQL数据库
  7. WPF如何给窗口设置透明png的图片背景
  8. 【绝对原创】最新研究成果,EFS加密文件真的可以解密!各位不要放弃哈~
  9. 从人工到自动,泛微云上自动化部署实践
  10. excel替换快捷键_excel怎样查找替换 excel查找替换快捷键,看完你学会了么
  11. web前端程序员真的值这么多钱吗?
  12. spring mvc 扫描与注解
  13. 用c++写一个简单的钓鱼(集卡)程序
  14. JAVA权重算法(如Dubbo的负载均衡权重)
  15. 拉格朗日Lagrange插值多项式
  16. 基于Unity3D的Xml文件的存储的实现
  17. 「数据库知识」——SQL处理学生表
  18. 5V升压8.4V的2A充电电路芯片-PW4202
  19. 采访腾讯云副总裁陈平:我们不是数智化转型赋能者,而是助力者!
  20. Android 应用链接详解

热门文章

  1. Tomcat 系统架构
  2. 跟我学习php文件和目录常用函数-下篇
  3. linux内核配置系统浅析(转)
  4. SwiftSuspenders 1.6-深入浅出1
  5. 在x86上成功使用gentoo系统上安装的grub2启动 Mac OS X Leopard 10.5.7
  6. XXL-RPC v1.3.2,分布式服务框架
  7. [20180602]函数与标量子查询3.txt
  8. java虚拟机学习(四)类的加载过程
  9. 《Linux系统初讲》学习总结(一)
  10. HTML中的map标签的使用