一 问题描述

最近朋友在工作中遇到这样一个问题,她每天都要处理如下一批 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 以上脚本就是随手一写,都没有优化,以后如果数据量太大估计会考虑优化,希望大家多提意见或建议;

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

  1. python分支结构的关键字_学习python分支结构

    学习python分支结构 来源:中文源码网    浏览: 次    日期:2019年11月5日 [下载文档:  学习python分支结构.txt ] (友情提示:右键点上行txt文档名->目标另 ...

  2. python异常处理结构的关键字_以下 Python 语言关键字在异常处理结构中用来捕获特定类型异常的选项是: (  )...

    [A型题]培养真菌常用的培养基是( ) [填空题]He made a quick ________________( adapt) to the new environment. [A型题]属于真核细 ...

  3. .bin 文件用excel文件打开_用python读Excel文件

    在IC设计.验证.后端中经常会用Excel来做配置文件.寄存器表.定义后端SDC参数等,不管Excel好不好用,但学习成本低啊. Excel文件的结构 Excel文件主要由工作簿(book).工作表( ...

  4. python合并excel工作簿_使用Python将多个excel的多个sheet页合并到一个excel

    使用Python将多个excel的多个sheet页合并到一个excel ##读取Excel文件 import xlrd ##将文本写入excel文件 import xlsxwriter ##读取exc ...

  5. python docx 合并文档 图片_使用python抓取大量简历文档内数据(word:docx;pdf;图片等)输出表格文件...

    1. 文章背景描述: 近期公司有员工离职了,技术岗位的. 让HR招人,招聘进度也太慢了,实在等不及,就撸起袖子自己上.(之前从来没招聘过) 自己在某招聘网站注册后,花了若干人民币,短时间收到大量求职者 ...

  6. python如何将生成的随机数存入文件中_用python在excel中读取与生成随机数写入excel中...

    今天是我第一次发博客,就关于python在excel中的应用作为我的第一篇吧. 具体要求是:在一份已知的excel表格中读取学生的学号与姓名,再将这些数据放到新的excel表中的第一列与第二列,最后再 ...

  7. python可以用于excel计算吗_你好Python!再见Excel?

    现在很多行业,都离不开Excel: 做财务的,要用Excel做报表: 做物流的,会用Excel来跟踪订单情况: 做HR的,会用Excel算工资: 做运营的,会用Excel记录数据做分析. 不知道你有没 ...

  8. 运行python程序的两种方式交互式和文件式_执行Python程序的两种方式

    交互式(了解) 交互式环境下,敲完一条命令按下enter键马上能看到结果,调试程序方便.程序无法永久保存,关掉cmd窗口数据就消失了. 命令行式(了解) 打开文本编辑器,在文本编辑器中写入一串字符. ...

  9. python交互式和文件式_使用Python创建和自动化交互式仪表盘

    python交互式和文件式 In this tutorial, I will be creating an automated, interactive dashboard of Texas COVI ...

最新文章

  1. 前端(移动端)开发利器Chrome Developer Tools秘籍(下)
  2. 对par.markdown解析进行完善
  3. android 美颜,「照骗」要消失了?Android 11 或禁用自动美颜
  4. 从Zero到Hero,OpenAI重磅发布深度强化学习资源
  5. 疾控中心计算机管理员权限,疾控中心健康证分权限管理系统使用说明
  6. 表达式如何获取复选框的值_Nuke表达式 Expression节点讲解
  7. Sentinel(二十一)之Sentinel Dashboard控制台日志路径设置
  8. 广州大学计算机网络期末考试2013,广州大学计算机网络技术试卷(A卷)
  9. MSSQL TCP/IP服务无法启动的解决方法
  10. 如何确定自己是否适合做程序员?
  11. 从java 转到 c# 知识点
  12. 操作系统分区原理(笔记)
  13. Tensorflow学习笔记 (用 tf.data 加载图片)
  14. 网易云音乐评论功能实现(数据库设计)
  15. 从pdf中提取图中曲线(和数据点)的方法(papa的儿子)
  16. SpringBoot与Loki的那些事
  17. Image Super-Resolution via Iterative Refinement 论文解读和感想
  18. 微型计算机主要技术指标是啥,微型计算机的主要技术指标
  19. 如何判断初级,中级,高级等等不同级别程序员
  20. goland编译时提示\go-build\exe\a.out.exe: The process cannot access the file because it is being used

热门文章

  1. BUUCTF(PWN)suctf_2018_stack
  2. Python小练习:批量删除多个文件夹内的相同文件
  3. mysql列宽设置,mysql – 从.csv文件确定最佳列宽
  4. linux nfs 权限设置,Linux NFS server 配置
  5. 币对交易所_比特币向1万4大涨,OK交易所的比特币为什么反而贬值7折?
  6. pytorch torch.Tensor.clone()(返回张量自身的副本。 副本具有与自身相同的大小和数据类型。)
  7. python numpy np.fromstring()函数(从字符串文本中提取数字,返回一维数组)(爬虫提取数字挺好用的)
  8. pycharm pycharm中用matplolib的ax3.plot_surface画出的3D(三维图)(三维函数)不能旋转怎么办?
  9. X-Magic Pair gcd,剪枝(1600)
  10. Java注释小技巧:使用linkplain链接跳转到对应的代码