假如公司需要统计每个员工的个人信息,制定好模板后,由员工填写,然后发送到综合部进行汇总,在这种情况下,如果公司有上百位员工的信息需要统计,且采用纯手工进行复制粘贴的方式进行汇总,则将是一项耗时费力易错的工作。本文主要以一个简单的小例子,简述如何通过Pyhton进行自动化文件合并。
涉及知识点
- xlrd模块:文件的读取
- xlwt模块:文件的生成
设计思路
- 获取指定目录下所有excel格式的文件。
- 循环读取Excel文件内容【读取固定的行与列】,将内容暂存内存中。
- 将内存中数据,写入到新的Excel文件中,并保存到指定位置。
效果示例
本例为了简化操作,总共有10个需要汇总的文件,如下所示:
每一个文件采用相同模板,格式一致,如下所示:
汇总后的文件,如下所示:
核心代码
引入相关的模块,如下所示:
1 import xlrd 2 xlwt 3 import os
读取excel内容,如下所示:
1 def read_excel(excel_folder: str): 2 """ 3 读取Excel文档 4 :param excel_folder: 5 :return: 6 7 excel_files = [] # excel文件列表 8 excel_contents = [] excel文件内容 9 files = os.listdir(path=excel_folder) 10 if len(files) > 0: 11 for file in files: 12 if file.endswith('.xls'): 13 excel_files.append(file) 14 if len(excel_files) ==15 print(此目录下没有对应的Excel文件) 16 循环读取文档 17 excel_files: 18 full_path = os.path.join(excel_folder,file) 19 book = xlrd.open_workbook(filename=full_path) 20 sheet = book.sheet_by_index(sheetx=0) 21 取固定位置的值 22 content = { 23 名称': sheet.cell_value(1,0),24 年纪': sheet.cell_value(1,1),1)">25 性别26 籍贯27 } 28 excel_contents.append(content) 29 30 return excel_contents
生成Excel内容,如下所示:
write_excel(excel_path: str,excel_contents: list): 生成Excel文档 :param excel_path: 7 if len(excel_contents) == 8 没有需要保存的内容 9 return 10 book = xlwt.Workbook(encoding=utf-811 sheet1 = book.add_sheet(统计信息12 先写标题 13 sheet1.write(0,14 sheet1.write(0,1,1)">15 sheet1.write(0,2,1)">16 sheet1.write(0,3,1)">17 i = 1 18 for content excel_contents: 19 sheet1.write(i,content[]) 20 sheet1.write(i,1)">21 sheet1.write(i,1)">22 sheet1.write(i,1)">23 i += 1 24 book.save(excel_path)
整体调用
1 excel_folder = rD:\MyProject\Demo01\TESTEXCEL' 2 excel_path = rD:\MyProject\Demo01\TESTEXCEL\汇总信息.xls3 excel_contents = read_excel(excel_folder) 4 print(excel_contents) 5 write_excel(excel_path,excel_contents) 6 done')
备注
相思
【作者】王维
红豆生南国,春来发几枝。
愿君多采撷,此物最相思。
原文地址:https://www.cnblogs.com/hsiang
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。