汕头制作网站软件,推广之家,网站开发百度云,51建模网官方网站一 问题描述
最近朋友在工作中遇到这样一个问题#xff0c;她每天都要处理如下一批 Excel 表格#xff1a;每个表格的都只有一个 sheet#xff0c;表格的前两行为表格标题及表头#xff0c;表格的最后一行是相关人员签字。最终目标是将每个表格的内容合并到一个 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 rinput
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