Python 自动化之修理excel文件(二)

批量合成excel文档Pro版



前言

上一篇简单介绍了一下excel文档的工作表拆分。那这篇给大家介绍一个批量深层次合并excel文档的教程。

各位快往下看呐!看不了吃亏看不了上当。货真价实童叟无欺呀!

在这里插入图片描述


一、做成什么样子

  • 指定合成某个目录的所有excel文档。
  • 指定合成这批excel文档的第几个sheet工作表。
  • 合成的新文档可以重命名新名字和指定目录。
  • 合成的新文档的里面的工作表顺序和目录下excel文档顺序一样。
  • 合成的新文档的里面的每个工作表命名格式《原文档名称-指定sheet名称》。

二、基本架构

主要分为四部分:

  • 库输入模块: 用到的一些库
  • 用户输入模块:需要用户输入的信息。
  • 数据处理模块:for—if嵌套循环结构。
  • 数据输出模块:输出保存文档。

三、库输入模块

代码如下:

from openpyxl import load_workbook
from openpyxl import Workbook
import os

load_workbook:用来读取文档信息。
Workbook:用来保存文档信息。
os:用来生成文档的新路径。


四、用户输入模块

代码如下:

print('请输入需要合并的文件的路径(例子:E:\BaiduNetdiskDownload):', end='')
excel_path = input()

print('需要合并文档中的第几个工作表:', end='')
which_sheet = int(input())

print('合并新文档的名称(例子:新建文本文档.xlsx):', end='')
creat_xlsx_name = input()

print('合并文档保存到哪个目录(例子:E:\BaiduNetdiskDownload):', end='')
new_excel_path = input()

使用者需要按照提示输入以上四个信息。


五、数据处理模块

1.获取当前目录的文件信息

# 获取目录下的所有条目
entries = os.listdir(excel_path)
print(entries)

entries会以目录中文档名称按顺序生成一个列表List。

2.创建Workbook实例对象

# 创建一个Workbook实例对象,用于保存
write_excel = Workbook()

需要把这个保存数据的实例对象写在for–if结构上面,这样下面的每一次遍历的数据才能不断地加入到这个实例中。

3.遍历entries列表

# 遍历当前所有条目
for entry in entries:
   # 判断是否是excel文档
   if entry.endswith('.xlsx'):

先遍历整个entries列表,把excel文档筛选出来进行下一步操作。
难免有些同学的目录中会有一些学习资料哈哈哈哈哈哈。

4.获取Excel文件的工作表信息

        # 使用os.path.join()构造完整文件路径
        full_entry_path = os.path.join(excel_path, entry)
        # 读取Excel文件
        read_excel = load_workbook(full_entry_path)
        # 获取指定工作表
        select_sheet = read_excel.worksheets[which_sheet-1]
        # 读取工作表数据
        datas = list(select_sheet.values)  # 将生成器转换为列表

第一步:找到Excel文件的路径。
第二步:读取Excel文件。
第三步:定位指定工作表。
第四步:获取指定工作表sheet信息。

5.命名和写入数据

        # 创建并命名工作表
        new_ws = write_excel.create_sheet(title=f"{
     entry.split('.')[0]}-{
     select_sheet.title}")
        # 给工作表写入数据
        for row in datas:
            new_ws.append(row)

先给工作表起个名字,然后把对应的数据写进去,一气呵成。


六、数据输出模块

1.删除空表sheet

# 删除默认创建的空工作表
del write_excel['Sheet']

这个大家应该很熟悉哈,把没有用的删除了。就像大家经常说的:上岸第一步,先斩意中人,呜呜呜呜呜~ ~ ~

2.保存合并后的Excel文件

# 保存合并后的Excel文件
write_excel.save(full_path)

最后一步,保存。大功告成oh!yeah!

总结

希望本博客能位广大打工人增加摸鱼的时间。就像某位名人所说的:加班,加班是不可能得,这辈子都不可能加班。只有摸鱼才能简单维持的了生活这样子。

相关推荐

  1. Python自动打开Excel文件

    2023-12-13 09:30:03       38 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-13 09:30:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-13 09:30:03       106 阅读
  3. 在Django里面运行非项目文件

    2023-12-13 09:30:03       87 阅读
  4. Python语言-面向对象

    2023-12-13 09:30:03       96 阅读

热门阅读

  1. 【clickhouse】ck远程访问另一个ck

    2023-12-13 09:30:03       59 阅读
  2. SpringDataRedis 基本使用

    2023-12-13 09:30:03       40 阅读
  3. JeecgBoot jmreport/queryFieldBySql RCE漏洞复现

    2023-12-13 09:30:03       65 阅读
  4. 电脑入门基础知识

    2023-12-13 09:30:03       62 阅读
  5. 如何在Go中使用结构体标签

    2023-12-13 09:30:03       60 阅读
  6. 算法通关村第十八关 | 黄金 | 较难的回溯问题

    2023-12-13 09:30:03       61 阅读
  7. Lcss算法介绍与应用演示

    2023-12-13 09:30:03       50 阅读
  8. Hive、MySQL、Oracle内建函数对照表

    2023-12-13 09:30:03       59 阅读
  9. Mysql的多表联合查询

    2023-12-13 09:30:03       57 阅读
  10. 谱聚类的原理

    2023-12-13 09:30:03       44 阅读
  11. MySQL和 Oracle查看表信息

    2023-12-13 09:30:03       55 阅读