文章详情

短信预约信息系统项目管理师 报名、考试、查分时间动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

python实现自动化之文件合并

2022-06-02 22:55

关注

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

涉及知识点

设计思路

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

效果示例

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

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

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

核心代码

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


import xlrd
import xlwt
import 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')

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

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯