Python将多个excel表格合并为一个表格


Posted in Python onFebruary 22, 2021

生活中经常会碰到多个excel表格汇总成一个表格的情况,比如你发放了一份表格让班级所有同学填写,而你负责将大家的结果合并成一个。诸如此类的问题有很多。除了人工将所有表格的内容一个一个复制到汇总表格里,那么如何用Python自动实现这些工作呢~

我不知道有没有其他更方便的合并方法,先用Python实现这个功能,自己用就很方便了。

比如,在文件夹下有如下7个表格(想象一下有100个或更多的表格需要合并)

Python将多个excel表格合并为一个表格

作为样例,每个表格的内容均为

Python将多个excel表格合并为一个表格

运行程序,将7个表格合并成了test.xls

Python将多个excel表格合并为一个表格

打开test.xls,发现成功合并了多个表格的数据到一个表格里

Python将多个excel表格合并为一个表格

代码运行之前,需要安装Numpy,xlrd,xlwt三个扩展包。话不多说,代码如下

#下面这些变量需要您根据自己的具体情况选择 
biaotou=['学号','学生姓名','第一志愿','第二志愿','第三志愿','第四志愿','第五志愿','联系电话','性别','备注'] 
#在哪里搜索多个表格 
filelocation="C:\\Users\\ann\Documents\\Python Scripts\\" 
#当前文件夹下搜索的文件名后缀 
fileform="xls" 
#将合并后的表格存放到的位置 
filedestination="C:\\Users\\ann\Documents\\Python Scripts\\" 
#合并后的表格命名为file 
file="test" 
 
#首先查找默认文件夹下有多少文档需要整合 
import glob 
from numpy import * 
filearray=[] 
for filename in glob.glob(filelocation+"*."+fileform): 
 filearray.append(filename) 
#以上是从pythonscripts文件夹下读取所有excel表格,并将所有的名字存储到列表filearray 
print("在默认文件夹下有%d个文档哦"%len(filearray)) 
ge=len(filearray) 
matrix = [None]*ge 
#实现读写数据 
 
#下面是将所有文件读数据到三维列表cell[][][]中(不包含表头) 
import xlrd 
for i in range(ge): 
 fname=filearray[i] 
 bk=xlrd.open_workbook(fname) 
 try: 
 sh=bk.sheet_by_name("Sheet1") 
 except: 
 print ("在文件%s中没有找到sheet1,读取文件数据失败,要不你换换表格的名字?" %fname) 
 nrows=sh.nrows 
 matrix[i] = [0]*(nrows-1) 
 
 ncols=sh.ncols 
 for m in range(nrows-1): 
 matrix[i][m] = ["0"]*ncols 
 
 for j in range(1,nrows): 
 for k in range(0,ncols): 
  matrix[i][j-1][k]=sh.cell(j,k).value 
#下面是写数据到新的表格test.xls中哦 
import xlwt 
filename=xlwt.Workbook() 
sheet=filename.add_sheet("hel") 
#下面是把表头写上 
for i in range(0,len(biaotou)): 
 sheet.write(0,i,biaotou[i]) 
#求和前面的文件一共写了多少行 
zh=1 
for i in range(ge): 
 for j in range(len(matrix[i])): 
 for k in range(len(matrix[i][j])): 
  sheet.write(zh,k,matrix[i][j][k]) 
 zh=zh+1 
print("我已经将%d个文件合并成1个文件,并命名为%s.xls.快打开看看正确不?"%(ge,file)) 
filename.save(filedestination+file+".xls")

我的运行环境是windows7 ,64位。Python版本是3.5.1,32位。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
使用Python的urllib2模块处理url和图片的技巧两则
Feb 18 Python
使用Python生成XML的方法实例
Mar 21 Python
Python3 模块、包调用&路径详解
Oct 25 Python
python使用xpath中遇到:到底是什么?
Jan 04 Python
python SSH模块登录,远程机执行shell命令实例解析
Jan 12 Python
python中协程实现TCP连接的实例分析
Oct 14 Python
使用Python 统计高频字数的方法
Jan 31 Python
python使用wxpy轻松实现微信防撤回的方法
Feb 21 Python
下载官网python并安装的步骤详解
Oct 12 Python
Python生成词云的实现代码
Jan 14 Python
基于python实现图片转字符画代码实例
Sep 04 Python
Python+MySQL随机试卷及答案生成程序的示例代码
Feb 01 Python
使用Python+Splinter自动刷新抢12306火车票
Jan 03 #Python
Python实现简易Web爬虫详解
Jan 03 #Python
Python读取MRI并显示为灰度图像实例代码
Jan 03 #Python
使用 Python 实现微信公众号粉丝迁移流程
Jan 03 #Python
EM算法的python实现的方法步骤
Jan 02 #Python
Python+树莓派+YOLO打造一款人工智能照相机
Jan 02 #Python
matplotlib绘制动画代码示例
Jan 02 #Python
You might like
实例(Smarty+FCKeditor新闻系统)
2007/01/02 PHP
在WordPress中使用PHP脚本来判断访客来自什么国家
2015/12/10 PHP
PHP 超级全局变量相关总结
2020/06/30 PHP
基于thinkphp5框架实现微信小程序支付 退款 订单查询 退款查询操作
2020/08/17 PHP
PhpStorm连接服务器并实现自动上传功能
2020/12/09 PHP
file模式访问网页时iframe高度自适应解决方案
2013/01/16 Javascript
定时器(setTimeout/setInterval)调用带参函数失效解决方法
2013/03/26 Javascript
js获取url参数值的两种方式
2013/09/10 Javascript
使用js在页面中绘制表格核心代码
2013/09/16 Javascript
javascript属性访问表达式用法分析
2015/04/25 Javascript
javascript实现类似百度分享功能的方法
2015/07/27 Javascript
使用jQuery监听DOM元素大小变化
2016/02/24 Javascript
在微信、支付宝、百度钱包实现点击返回按钮关闭当前页面和窗口的方法
2016/08/05 Javascript
引用jquery框架后出错的解决方法
2016/08/09 Javascript
通过cordova将vue项目打包为webapp的方法
2019/02/02 Javascript
Element-UI中Upload上传文件前端缓存处理示例
2019/02/21 Javascript
原理深度解析Vue的响应式更新比React快
2020/04/04 Javascript
js简单实现自动生成表格功能示例
2020/06/02 Javascript
利用Python的装饰器解决Bottle框架中用户验证问题
2015/04/24 Python
Python输出PowerPoint(ppt)文件中全部文字信息的方法
2015/04/28 Python
python脚本内运行linux命令的方法
2015/07/02 Python
python用pickle模块实现“增删改查”的简易功能
2017/06/07 Python
Vue的el-scrollbar实现自定义滚动
2018/05/29 Python
win10下python3.8的PIL库安装过程
2020/06/08 Python
利用Python将图片中扭曲矩形的复原
2020/09/07 Python
Django配置跨域并开发测试接口
2020/11/04 Python
Python爬虫之Selenium下拉框处理的实现
2020/12/04 Python
如何用Matlab和Python读取Netcdf文件
2021/02/19 Python
利用CSS3实现单选框动画特效示例代码
2016/09/26 HTML / CSS
Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
2015/01/27 面试题
通信工程专业个人找工作求职信范文
2013/09/21 职场文书
新闻工作者先进事迹
2014/05/26 职场文书
员工激励培训演讲稿
2014/09/16 职场文书
鸟的天堂导游词
2015/01/31 职场文书
2016关于军训的心得体会
2016/01/11 职场文书
教你怎么用python selenium实现自动化测试
2021/05/27 Python