python-将多个表格的信息合并到一个表格中
1、环境
代码运行环境:python3.7
相关的库:xlrd、xlwt
2、目的
通过xlrd库读取各个表格的数据,通过xlwt库将读取到的数据写入到一个表格中。
3、实现
在工程目录下,有一个test目录,存放的是待合并的表格,输出表格为merge.xls,就输出在当前工程目录下。每个合并的表格中我只需要"body"这个sheet,而且这个sheet中的数据格式都是按照下面的格式存放的。


实现的代码如下:
1 # encoding: utf-8
2
3 '''
4 本代码的作用是将多个表格合并为一个表格。
5 '''
6
7 import os
8 import xlrd
9 import xlwt
10 import logging
11
12 # 设置logging.basicConfig()方法的参数和配置logging.basicConfig函数
13 FORMAT = '[%(funcName)s: %(lineno)d]: %(message)s'
14 LEVEL = logging.INFO
15 logging.basicConfig(level = LEVEL, format=FORMAT)
16
17 excel_content = []
18 output_file = './merge.xls'
19
20 # 打开表格,获取信息
21 def get_obj_list(dir_name):
22 filelist = os.listdir(dir_name)
23 for item in filelist :
24 item = dir_name + item
25 if os.path.isfile(item) and (item[-4:] == '.xls' or item[-5:] == '.xlsx' or item[-5:] == '.xlsm'):
26 if item.find("$") != -1:
27 continue
28 merge_excel(item)
29 elif os.path.isdir(item):
30 item = item + '/'
31 get_obj_list(item)
32
33
34 # 获取单个表格的信息
35 def merge_excel(excelName):
36 excelfd = xlrd.open_workbook(excelName)
37 for sheet in excelfd.sheet_names():
38 if sheet == 'body':
39 print (excelName)
40 sheet_content = excelfd.sheet_by_name(sheet)
41 header = sheet_content.cell(0, 0).value
42 if header == u'高校名称': # 去掉标题行
43 row = 1
44 else:
45 row = 0
46 while row < sheet_content.nrows:
47 college = sheet_content.cell(row, 0).value
48 institute = sheet_content.cell(row, 1).value
49 built_time = sheet_content.cell(row, 2).value
50 overview = sheet_content.cell(row, 3).value
51 item = [college, institute, built_time, overview]
52 excel_content.append(item)
53 row += 1
54
55
56 # 将获取到的表格信息保存到一个表格中
57 def save_info():
58 workbook = xlwt.Workbook(encoding = 'ascii')
59 worksheet = workbook.add_sheet('merge_info')
60 style = xlwt.XFStyle() # 初始化样式
61 font = xlwt.Font() # 为样式创建字体
62 font.name = 'Times New Roman'
63 font.bold = True # 黑体
64 font.underline = True # 下划线
65 font.italic = True # 斜体字
66 style.font = font # 设定样式
67 worksheet.write(0, 0, '高校名称')
68 worksheet.write(0, 1, '学院名称')
69 worksheet.write(0, 2, '成立时间')
70 worksheet.write(0, 3, '人工智能学院、人工智能研究院建设情况')
71
72 for i, item in enumerate(excel_content):
73 for j in range(4): #多添加一列(序号)
74 worksheet.write(i+1, j, item[j])
75 workbook.save(output_file) # 保存文件
76
77
78 if __name__ == "__main__":
79
80 if os.path.exists(output_file):
81 os.remove(output_file)
82
83 get_obj_list('./test/')
84 save_info()
4、输出结果
这是我手动调整过表格格式的结果。至此,需要实现的功能都实现了。

python-将多个表格的信息合并到一个表格中的更多相关文章
- Python将多个excel表格合并为一个表格
Python将多个excel表格合并为一个表格 生活中经常会碰到多个excel表格汇总成一个表格的情况,比如你发放了一份表格让班级所有同学填写,而你负责将大家的结果合并成一个.诸如此类的问题有很多.除 ...
- Python自动化办公:27行代码实现将多个Excel表格内容批量汇总合并到一个表格
序言 (https://jq.qq.com/?_wv=1027&k=GmeRhIX0) 老板最近越来越过分了,快下班了发给我几百个表格让我把内容合并到一个表格内去.还好我会Python,分分钟 ...
- Python:27行代码实现将多个Excel表格内容批量汇总合并到一个表格
序言 (https://jq.qq.com/?_wv=1027&k=GmeRhIX0) 老板最近越来越过分了,快下班了发给我几百个表格让我把内容合并到一个表格内去.还好我会Python,分分钟 ...
- python 将列表里的字典元素合并为一个字典
python 将列表里的字典元素合并为一个字典 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn. ...
- MySQL 合并查询join 查询出的不同列合并到一个表中
为了求解问题时思路清晰,建议先分列查询,再将列合并到一个表中,这样相当于将复杂问题拆解为简单问题,一一解决.优点是避免所有问题混在一起,代码逻辑清晰,可迁移性强,下次遇到类似的查询问题能快速求解,缺点 ...
- 将多个sass文件合并到一个文件中
将多个sass文件合并到一个文件中 应用场景:制作angular npm包的时候,定义的一些全局样式,自定义主题色这类的情况下,多个scss文件会要合并成一个文件并写到dist文件里,发布到仓库中. ...
- MySQL 合并查询union 查询出的行合并到一个表中
在合并查询中,尤其是二分类的情况,在查询结果是相同列名的时候可以考虑合并查询.先查询出行的结果,再使用union或者union all合并查询结果. 另外如果 union 和 order by 一起使 ...
- Python 网络爬虫 009 (编程) 通过正则表达式来获取一个网页中的所有的URL链接,并下载这些URL链接的源代码
通过 正则表达式 来获取一个网页中的所有的 URL链接,并下载这些 URL链接 的源代码 使用的系统:Windows 10 64位 Python 语言版本:Python 2.7.10 V 使用的编程 ...
- 如何快速将多个excel表格的所有sheet合并到一个sheet中
1.将需要合并的excel文件放在同一个文件夹下: 2.新建一个excel表格并打开,右键sheet1,查看代码,然后复制下方的代码到代码框里,点击菜单栏中的“运行”–“运行子过程/用户窗体”,等待程 ...
- 多个不同的表合并到一个datatable中,repeater在绑定datatable
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI ...
随机推荐
- CSS:注册页面的编写练习
最终效果图: html文件: <!-- * @Qusetion: * @Author: 一届书生 * @Date: 2020-04-07 08:17:36 * @LastEditTime: 20 ...
- java中jar文件
1.文档性质的jar文件 可以将有包名的类的字节码文件压缩成一个jar文件,供其他源文件用import语句导入jar文件中的类. 以下结合具体的两个类给出生成的jar文件的步骤eg23中TestTwo ...
- 支付宝移动端 Hybrid 解决方案探索与实践
支付宝 Hybrid 方案建设与演进 目前支付宝有 2 套 Hybrid 方案: HTML5 容器与小程序.小程序是最近几年才出来,H5 容器已经有了很长时间的历史,所以我们就先从 H5 容器说起. ...
- OpenSergo 正式开源,多家厂商共建微服务治理规范和实现
简介 OpenSergo,Open 是开放的意思,Sergo 则是取了服务治理两个英文单词 Service Governance 的前部分字母 Ser 和 Go,合起来即是一个开放的服务治理项目. ...
- [FAQ] 对于 Puppeteer 和 Chromium 在 Linux 上的安装,需要安装哪些依赖库
比如 puppeteer/chrome/linux-114.0.5735.133/chrome-linux64/chrome 到底要装哪些依赖. 一般根据报错提示,安装缺少的即可,以下是一般需要的 ...
- Java中使用try代码块自动关闭各种流(IO流……)
推荐写在 try 的括号中 /** 方式一.方式二是等价的 * <li>推荐使用方式一</li> * @since 2023/5/18 0018 * @author CC ** ...
- 【2023最新B站评论爬虫】用python爬取上千条哔哩哔哩评论
目录 一.爬取目标 二.展示爬取结果 三.爬虫代码 四.同步视频 五.附完整源码 您好,我是@马哥python说,一枚10年程序猿. 一.爬取目标 之前,我分享过一些B站的爬虫: [Python爬虫案 ...
- virutalenvwrapper安装和使用
目录 virutalenvwrapper安装和使用 目的: 1.安装pip 2.安装virutalenv和virutalenvwrapper 3.配置环境变量 4. 创建虚拟环境 5.列出全部的虚拟环 ...
- 01 Xpath简明教程(十分钟入门)
目录 Xpath简明教程(十分钟入门) Xpath表达式 Xpath节点 节点关系 Xpath基本语法 1) 基本语法使用 2) xpath通配符 3) 多路径匹配 Xpath内建函数 Xpath简明 ...
- C语言:将字符逆反排列再输出的问题
代码: #include<stdio.h> #define N 10 int main() { /*输入字符串,str[10],将里面的字符逆反排列,再输出.*/ char ch[N]; ...