python-将多个表格的信息合并到一个表格中
Posted MrLayflolk
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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-将多个表格的信息合并到一个表格中的主要内容,如果未能解决你的问题,请参考以下文章