批量合成excel文档Pro版
文章目录
- 批量合成excel文档Pro版
- 前言
- 一、做成什么样子
- 二、基本架构
- 三、库输入模块
- 四、用户输入模块
- 五、数据处理模块
- 1.获取当前目录的文件信息
- 2.创建Workbook实例对象
- 3.遍历entries列表
- 4.获取Excel文件的工作表信息
- 5.命名和写入数据
- 六、数据输出模块
- 1.删除空表sheet
- 2.保存合并后的Excel文件
- 总结
前言
上一篇简单介绍了一下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!
总结
希望本博客能位广大打工人增加摸鱼的时间。就像某位名人所说的:加班,加班是不可能得,这辈子都不可能加班。只有摸鱼才能简单维持的了生活这样子。