您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:python实现自动化之文件合并

51自学网 2021-10-30 22:23:18
  python
这篇教程python实现自动化之文件合并写得很实用,希望能帮到您。

假如公司需要统计每个员工的个人信息,制定好模板后,由员工填写,然后发送到综合部进行汇总,在这种情况下,如果公司有上百位员工的信息需要统计,且采用纯手工进行复制粘贴的方式进行汇总,则将是一项耗时费力易错的工作。本文主要以一个简单的小例子,简述如何通过Pyhton进行自动化文件合并。

涉及知识点

  • xlrd模块:文件的读取
  • xlwt模块:文件的生成

设计思路

1、获取指定目录下所有excel格式的文件。
2、循环读取Excel文件内容【读取固定的行与列】,将内容暂存内存中。
3、将内存中数据,写入到新的Excel文件中,并保存到指定位置。

效果示例

本例为了简化操作,总共有10个需要汇总的文件,如下所示:

每一个文件采用相同模板,格式一致,如下所示:

汇总后的文件,如下所示:

核心代码

引入相关的模块,如下所示:

import xlrdimport xlwtimport os

读取excel内容,如下所示:

def read_excel(excel_folder: str):    """    读取Excel文档    :param excel_folder:    :return:    """    excel_files = []  # excel文件列表    excel_contents = []  # excel文件内容    files = os.listdir(path=excel_folder)    if len(files) > 0:        for file in files:            if file.endswith('.xls'):                excel_files.append(file)    if len(excel_files) == 0:        print('此目录下没有对应的Excel文件')    # 循环读取文档    for file in excel_files:        full_path = os.path.join(excel_folder, file)        book = xlrd.open_workbook(filename=full_path)        sheet = book.sheet_by_index(sheetx=0)        # 取固定位置的值        content = {            '名称': sheet.cell_value(1, 0),            '年纪': sheet.cell_value(1, 1),            '性别': sheet.cell_value(1, 2),            '籍贯': sheet.cell_value(1, 3)        }        excel_contents.append(content) return excel_contents

生成Excel内容,如下所示:

def write_excel(excel_path: str, excel_contents: list):    """    生成Excel文档    :param excel_path:    :return:    """    if len(excel_contents) == 0:        print('没有需要保存的内容')        return    book = xlwt.Workbook(encoding='utf-8')    sheet1 = book.add_sheet('统计信息')    # 先写标题    sheet1.write(0, 0, '名称')    sheet1.write(0, 1, '年纪')    sheet1.write(0, 2, '性别')    sheet1.write(0, 3, '籍贯')    i = 1    for content in excel_contents:        sheet1.write(i, 0, content['名称'])        sheet1.write(i, 1, content['年纪'])        sheet1.write(i, 2, content['性别'])        sheet1.write(i, 3, content['籍贯'])        i += 1    book.save(excel_path)

整体调用

excel_folder = r'D:/MyProject/Demo01/TESTEXCEL'excel_path = r'D:/MyProject/Demo01/TESTEXCEL/汇总信息.xls'excel_contents = read_excel(excel_folder)# print(excel_contents)write_excel(excel_path, excel_contents)print('done')

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持51zixue.net。


Matlab读取excel并利用拉依达准则筛选数据的全过程
matlab和Excel的数据交互操作(非xlsread和xlswrite)
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。