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

批量合成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!

总结

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/217872.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IEEE期刊论文模板

一、模板下载 1、登陆IEEE作者中心Author Center 地址:Publish with IEEE Journals - IEEE Author Center Journals 2、点击“Download a template” 3、在弹出的模板下载页面点击IEEE模板选择器“IEEE Template Selector” 4、在弹出的模板选择器页面点击“Tran…

分支预测失败的处理

由于现代的超标量处理器采用了很多预测的方法来执行指令,并不是流水线中所有的指令都可以退休(retire),例如当流水线中的某条分支指令发生了预测错误,或者某条指令发生了异常,那么在这条指令之后进入流水线的所有指令就不允许退休了; 此时需要将这些指令…

翻译: LLM大语言模型图像生成原理Image generation

文本生成是许多用户正在使用的,也是所有生成式人工智能工具中影响最大的。但生成式人工智能的一部分兴奋点也在于图像生成。目前也开始出现一些可以生成文本或图像的模型,这些有时被称为多模态模型,因为它们可以在多种模式中操作,…

代码随想录算法训练营第四十二天|背包问题理论基础、01背包理论基础(滚动数组)、416. 分割等和子集

代码随想录算法训练营第四十二天|背包问题理论基础、01背包理论基础(滚动数组)、416. 分割等和子集 背包问题理论基础 背包问题理论基础 文章讲解:https://programmercarl.com/%E8%83%8C%E5%8C%85%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%8001%E…

谈谈常用的分布式ID的设计方案?

典型回答 首先,我们需要明确通常的分布式ID定义,基本的要求包括: 全局唯一,区别于单点系统的唯一,全局是要求分布式系统内唯一。 有序性,通常都需要保证生成的ID是有序递增的。例如,在数据库存…

iframe 与主应用页面之间如何互相通信传递数据

背景 当我们的Web页面需要复用现有网站的页面时,我们通常会考虑代码层面的抽离引用,但是对于一些过于复杂的页面,通过 iframe 嵌套现有的网站页面也是一种不错的方式,。目前我就职的项目组就有多个业务利用 iframe 完成业务的复用…

QT 基础篇

目录 QPushButton QT帮助文档 QT 对象树 QPushButton QPushButton是Qt图形界面控件中的一种,看英文的意思,他就是按钮,是最基本的图形控件之一。在我们的最基本的项目中,运行: 是一个空白的窗体,里面什么也没有&am…

在Node.js中使用MongoDB连接数据库、创建集合

本文主要介绍在Node.js中使用MongoDB连接数据库、创建集合的方法。 目录 连接数据库使用原生驱动程序连接MongoDB数据库使用Mongoose连接MongoDB数据库 创建集合使用mongodb驱动程序 连接数据库 在Node.js中使用MongoDB连接数据库有两种方式:使用原生驱动程序和使用…

静态HTTP应用的性能优化技巧

在Web开发中,静态HTTP应用以其简单、快速和安全的特点受到了广泛欢迎。然而,随着Web应用的规模不断扩大,性能问题也日益突出。本文将为你介绍一些静态HTTP应用的性能优化技巧,让你的应用飞得更快、更稳定。 一、压缩文件 文件压…

以pycharm为例,生成Python项目所需要的依赖库/包文档:requirements.txt

平时我们在编写或者使用别人的Python项目时,往往会看到一个文档requirements.txt,该文档是描述一个Python项目中的第三方库的名称以及版本。本文介绍导出python当前项目依赖包requirements.txt的操作步骤。 方法一:如果每个项目有对应的虚拟…

【C++】哈希表

文章目录 哈希概念哈希冲突哈希函数哈希表闭散列开散列 开散列与闭散列比较 正文开始前给大家推荐个网站,前些天发现了一个巨牛的 人工智能学习网站, 通俗易懂,风趣幽默,忍不住分享一下给大家。 点击跳转到网站。 哈希概念 顺…

CPython(将Python编译为so)

环境 先配一下环境,我使用的是python3.8.5 pip install Cython 编译过程 我们准备一个要编译的文件 test.py def xor(input_string): output_string "" for char in input_string: output_string chr(ord(char) ^ 0x66) return output_string…

Redis - 事务隔离机制

Redis 的事务的本质是 一组命令的批处理 。这组命令在执行过程中会被顺序地、一次性 全部执行完毕,只要没有出现语法错误,这组命令在执行期间是不会被中断。 当事务中的命令出现语法错误时,整个事务在 exec 执行时会被取消。 如果事务中的…

PyTorch深度学习实战(25)——自编码器

PyTorch深度学习实战(25)——自编码器 0. 前言1. 自编码器2. 使用 PyTorch 实现自编码器小结系列链接 0. 前言 自编码器 (Autoencoder) 是一种无监督学习的神经网络模型,用于数据的特征提取和降维,它由一个编码器 (Encoder) 和一…

20分钟部署ChatGLM3-6B

准备工作 1.下载源代码: https://github.com/THUDM/ChatGLM3 2.下载预训练模型: https://modelscope.cn/models/ZhipuAI/chatglm3-6b/files 可以创建一个py文件,直接使用如下代码下载到本地: from modelscope.hub.snapshot_dow…

python实现形态学建筑物指数MBI提取建筑物及数据获取

前言 形态学建筑物指数MBI通过建立建筑物的隐式特征和形态学算子之间的关系进行建筑物的提取[1]。 原理 上图源自[2]。 实验数据 简单找了一张小图片: test.jpg 代码 为了支持遥感图像,读写数据函数都是利用GDAL写的。 import numpy as np import …

LNMP网站架构分布式搭建部署

1. 数据库的编译安装 1. 安装软件包 2. 安装所需要环境依赖包 3. 解压缩到软件解压缩目录,使用cmake进行编译安装以及模块选项配置(预计等待20分钟左右),再编译及安装 4. 创建mysql用户 5. 修改mysql配置文件,删除…

时间序列预测 — BiLSTM实现多变量多步光伏预测(Tensorflow)

目录 1 数据处理 1.1 导入库文件 1.2 导入数据集 1.3 缺失值分析 2 构造训练数据 3 模型训练 3.1 BiLSTM网络 3.2 模型训练 4 模型预测 1 数据处理 1.1 导入库文件 import time import datetime import pandas as pd import numpy as np import matplotlib.pyplot…

触发器和函数:让代码更接近数据

来源:艾特保IT 虹科干货丨触发器和函数:让代码更接近数据 原文链接:虹科干货 | 触发器和函数:让代码更接近数据 欢迎关注虹科,为您提供最新资讯! 文章速览: 触发器和函数的基础知识 编写语言…

AI创新之美:AIGC探讨2024年春晚吉祥物龙辰辰的AI绘画之独特观点

🎬 鸽芷咕:个人主页 🔥 个人专栏:《粉丝福利》 《linux深造日志》 ⛺️生活的理想,就是为了理想的生活! 文章目录 引言一、龙辰辰事件概述二、为什么龙辰辰会被质疑AI创作?1.1 AI 作画的特点2.2 关于建行的合作宣传图…