一 问题描述

最近朋友在工作中遇到这样一个问题,她每天都要处理如下一批 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 合并多个格式一致的 Excel 文件(推荐)

本文地址: http://www.cppcns.com/jiaoben/python/291599.html

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

  1. 两表格合并_使用 Python 合并多个格式一致的 Excel 文件

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

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

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

  3. 【科学文献计量】将Endnote中的文献读入python中进行数据分析,并顺便将结果保存为Excel文件,并封装函数直接调用

    将Endnote中的文献读入python中进行数据分析,并顺便将结果保存为Excel文件 1 需求 2 功能完成 2.1 文献下载 2.2 文献导入到Endnote 2.3 文献导出 2.4 文件加载 ...

  4. python 写入excel_使用python将数据写入excel

    原博文 2019-04-28 16:28 − 先来个简单的例子: #!/usr/bin/python #coding=utf-8 # ================================= ...

  5. python按行求和_Python第一篇:对3个Excel文件进行整合

    继6月24日发了一篇Python的安装之后,憋了一个月,终于准备发一篇实用的Python应用于Excel的例文. 这篇例文,是将三个工资文件合并为一个,并进行按人及按月的合计. 先来看看三个工资文件的 ...

  6. python接入excel_使用python将excel数据导入数据库过程详解

    因为需要对数据处理,将excel数据导入到数据库,记录一下过程. 使用到的库:xlrd 和 pymysql (如果需要写到excel可以使用xlwt) 直接丢代码,使用python3,注释比较清楚. ...

  7. python接入excel_使用Python实现Excel数据表导入数据库

    原博文 2020-06-16 09:48 − import pymysqlimport xlrdfrom xlrd import xldate_as_tupleimport datetime# 连接数 ...

  8. python另存为excel_在Python中将Excel另存为HTML

    我正在尝试使用win32com.client将现有的Excel文件保存为 Python格式的HTML.下面是我的代码和生成的错误消息.有什么建议? import win32com.client as ...

  9. python 写入excel_基于Python实现Excel的读写

    LabVIEW:2018 Python:3.6.0 xlrd:1.2.0 xlwt:1.3.0 Python的强大不需要我来解释,人生苦短,我用python!自行学习之后总想把它在工作中慢慢用起来,L ...

最新文章

  1. mysql索引教程_MySQL教程96-MySQL索引类型
  2. JAVA SAX解析XML字符串实例
  3. 广东海洋大学微型计算机考试,广东海洋大学2007-2008微型计算机原理及应用
  4. 在Linux上安装Python 3
  5. Java Scala 混合编程导致 编译失败 ,【找不到符号】问题解决
  6. centos默认安装mysql_centos6.x默认安装mysql5.7
  7. php智慧社区,智慧园区综合管理平台智慧社区解决方案
  8. WEB字体,多列布局和伸缩盒
  9. 批量根据实体类生成相关的类
  10. Solidworks2022安装
  11. c语言bim的题目,BIM考试选择题精选
  12. 一个简单的透视游戏的编写
  13. 有哪些软件堪称「神器」,却不被大众所知?
  14. 网站接入QQ登录功能的实现
  15. [UNR#5]诡异操作
  16. 海关外贸企业大数据风控平台产品应用
  17. 小鱼鱼的 Python 学习笔记(第一周)
  18. 计算机注销命令,电脑的注销命令是什么?
  19. 若在矩阵A中存在一个元素Aij,该元素是第i行元素中最大值并且又是第j列元素中最小值,则称此元素值为该元素的一个鞍点。假设以二维数组存储矩阵A,求该矩阵中的所有鞍点。
  20. 微信开发详解scope---snsapi_base和snaspi_userinfo 区别

热门文章

  1. 关于NIOS ii烧写的几种方式(转)
  2. Eclipse自动补全功能轻松设置 || 不需要修改编辑任何文件
  3. 求二维数组的转置矩阵
  4. 用Sass创建MetaFizzy效果
  5. notify_one() 或 notify_all() 在c++中的使用要点
  6. C语言判断计算机存储是大端还是小端
  7. of_property_read_string 剖析~
  8. linux Hello World 模块编程
  9. mysql用户数据导入_mysql创建数据库、用户及导入数据_mysql数据库教程
  10. 百面机器学习——第一章特征工程