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

批量合成excel文档Pro版


文章目录

  • 批量合成excel文档Pro版
  • 前言
  • 一、做成什么样子
  • 二、基本架构
  • 三、库输入模块
  • 四、用户输入模块
  • 五、数据处理模块
    • 1.获取当前目录的文件信息
    • 2.创建Workbook实例对象
    • 3.遍历entries列表
    • 4.获取Excel文件的工作表信息
    • 5.命名和写入数据
  • 六、数据输出模块
    • 1.删除空表sheet
    • 2.保存合并后的Excel文件
  • 总结


前言

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

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

Python 自动化之修理excel文件(二)_第1张图片


一、做成什么样子

  • 指定合成某个目录的所有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!

总结

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

你可能感兴趣的:(Python,自动化,python,自动化,excel)