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、输出结果

这是我手动调整过表格格式的结果。至此,需要实现的功能都实现了。

原文地址:https://www.cnblogs.com/mrlayfolk/p/12632227.html

时间: 2024-10-10 18:27:07

python-将多个表格的信息合并到一个表格中的相关文章

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

生活中经常会碰到多个excel表格汇总成一个表格的情况,比如你发放了一份表格让班级所有同学填写,而你负责将大家的结果合并成一个.诸如此类的问题有很多.除了人工将所有表格的内容一个一个复制到汇总表格里,那么如何用Python自动实现这些工作呢~ 我不知道有没有其他更方便的合并方法,先用Python实现这个功能,自己用就很方便了. 比如,在文件夹下有如下7个表格(想象一下有100个或更多的表格需要合并) 作为样例,每个表格的内容均为 运行程序,将7个表格合并成了test.xls 打开test.xls

88. Merge Sorted Array【leetcode】算法,java将两个有序数组合并到一个数组中

88. Merge Sorted Array Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array. Note:You may assume that nums1 has enough space (size that is greater or equal to m + n) to hold additional elements from nums2. The n

办公自动化18-将多个excel表中的多个sheet合并到一个excel中的一个sheet

合并前excel中的数据情况: 合并后的excel中数据情况: 附上代码如下: import pandas as pd year = ['2017','2018']#文件夹的命名 sheet_concat = pd.DataFrame() for i in range(len(year)): sheet = pd.read_excel('C:/Users/17360/Desktop/test/'+year[i]+'.xlsx',sheet_name = None,header= 0) #shee

Python 结合Ansible 把管理资产信息自动插入到CMDB中

资产管理对于任何公司来说都是件非常重要的事情,大家不用cmdb都有点不好意思出来见人了,上了CMDB之后基础就是资产这块,为了不苦逼似的一个个往里边录入,于是用python 结合Ansible 写了个自动收集资产信息,然后拿出自己需要关注的字段,自动insert 到cmdb 数据库里边去. 我们的cmdb 是开源改的,前端自定义好之后,后端的数据库需要自己创建个表,创建表语句如下:CREATE TABLE ansible_host (id int(11) NOT NULL AUTO_INCREM

如何快速将多个excel表格的所有sheet合并到一个sheet中

1.将需要合并的excel文件放在同一个文件夹下: 2.新建一个excel表格并打开,右键sheet1,查看代码,然后复制下方的代码到代码框里,点击菜单栏中的“运行”–“运行子过程/用户窗体”,等待程序运行结束,即可实现数据合并到sheet1中. 详细步骤可参考:https://jingyan.baidu.com/article/f0062228d16ba9fbd3f0c82b.html?qq-pf-to=pcqq.c2c Sub 合并当前目录下所有工作簿的全部工作表()Dim mypath,

Python版将两个有序数组合并为一个有序数组

第一种思路,把两个数组合为一个数组然后再排序,问题又回归到冒泡和快排了,没有用到两个数组的有序性.(不好) 第二种思路,循环比较两个有序数组头位元素的大小,并把头元素放到新数组中,从老数组中删掉,直到其中一个数组长度为0.然后再把不为空的老数组中剩下的部分加到新数组的结尾.(好) 第二种思路的排序算法与测试代码如下: def merge_sort(a, b): ret = [] while len(a)>0 and len(b)>0: if a[0] <= b[0]: ret.appen

怎样将结构完全一样的两个表的内容合并到一个表中,SQL语句

标签: SQL合并数据 2013-08-21 10:41 489人阅读 评论(0) 收藏 举报  分类: Oracle数据库(14)  select * into 新表名 from (select * from T1 union all select * from T2) 这个语句可以实现将合并的数据追加到一个新表中. 不合并重复数据 select * from T1 union all select * from T2 合并重复数据 select * from T1 union select

多个不同的表合并到一个datatable中,repeater在绑定datatable

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System.Data;using System.Data.SqlClient;namespace LZserverList{    public partial class LZList : System.Web.UI.

将表格的数据插入另一个表格

但我们在开发.测试过程中,经常会遇到需要表复制的情况,如将一个table1的数据的部分字段复制到table2中,或者将整个table1复制到table2中,这时候我们就要使用SELECT INTO 和 INSERT INTO SELECT 表复制语句了. 1.INSERT INTO SELECT语句 语句形式为:Insert into Table2(field1,field2,...) select value1,value2,... from Table1 要求目标表Table2必须存在,由于