用python实现自动填数生成表格v1.0

2024-01-02 02:32

本文主要是介绍用python实现自动填数生成表格v1.0,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

先简单描述一下需求,是这样,有时候人事部门需要对着同样的一张表录入数据,比如说员工退休表,这样的表通常是一张excel表格,由于退休员工有多个,那么这样的表肯定就要经常录入了。录入之后由于excel是独立分散的,并不便于后续的数据的查找、管理等。同时,每个退休员工都要录入一张表的话,有时候工作量很大,也容易出错。

这样的业务需求其实是很多的,比如生成每个学生独立的成绩单等等。

那么,有没有什么办法比较好解决呢?当然是有,而且思路是很简单的。首先先把所有待处理的数据填放在一个数据源的excel表格里面,再分别制作一个模板和一个填入位置的excel。然后用python去读取数据源、模板和填入位置,然后复制模板并且按照填入位置用数据源表格里面的每一行表格逐一生成一个个的处理后的结果表即可了。

先上代码:

from openpyxl import Workbook
from openpyxl import load_workbook
import os
import datetime
import shutildef now(year=True,month=True,day=True,hour=True,minute=True,second=True):def complete(x):return '0' + str(x) if x<10 else str(x)d = datetime.datetime.now()result = ''if year:result += str(d.year) + '-'if month:result += complete(d.month) + '-'if day:result += complete(d.day) + ' 'if hour:result += complete(d.hour) + '-'if minute:result += complete(d.minute) + '-'if second:result += complete(d.second) + '-'return result[:-1] path = os.getcwd()def run():print(now()+' 开始任务,请稍候...')if not os.path.exists(os.getcwd() + '\\' + '模板.xlsx'):print('丢失模板.xlsx,请设置好文件再运行...')returntemplate_name = os.getcwd() + '\\' + '模板.xlsx'if not os.path.exists(os.getcwd() + '\\' + '数据源.xlsx'):print('丢失模板.xlsx,请设置好文件再运行...')returndata_sheet = load_workbook(os.getcwd() + '\\' + '数据源.xlsx').activeif not os.path.exists(os.getcwd() + '\\' + '填入位置.xlsx'):print('丢失模板.xlsx,请设置好文件再运行...')returnlocation_sheet = load_workbook(os.getcwd() + '\\' + '填入位置.xlsx').activelc = []for column in range(1,location_sheet.max_column+1):lc.append(str(location_sheet.cell(2,column).value).upper())outputfolder = 'output ' + now()if not os.path.exists(os.getcwd() + '\\' + outputfolder):os.mkdir(os.getcwd() + '\\' + outputfolder)for row in range(2,data_sheet.max_row+1):targetname = os.getcwd() + '\\' + outputfolder + '\\' + str(data_sheet.cell(row,1).value) +'.xlsx'shutil.copy(template_name,targetname)target = load_workbook(targetname)target_sheet = target.activefor i in range(0,len(lc)):target_sheet[lc[i]] = data_sheet.cell(row,i+1).valuetarget.save(targetname)print(now()+' 任务完成...')# except:# 	print('您的模板、数据源、填入位置可能填写有误,出现异常了,请好好检查再重新运行...')run()
print('请输入任意键退出...')
input()

demo文件在这里:https://download.csdn.net/download/sinolzeng/15432505

这篇关于用python实现自动填数生成表格v1.0的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/561096

相关文章

使用Python实现矢量路径的压缩、解压与可视化

《使用Python实现矢量路径的压缩、解压与可视化》在图形设计和Web开发中,矢量路径数据的高效存储与传输至关重要,本文将通过一个Python示例,展示如何将复杂的矢量路径命令序列压缩为JSON格式,... 目录引言核心功能概述1. 路径命令解析2. 路径数据压缩3. 路径数据解压4. 可视化代码实现详解1

python获取网页表格的多种方法汇总

《python获取网页表格的多种方法汇总》我们在网页上看到很多的表格,如果要获取里面的数据或者转化成其他格式,就需要将表格获取下来并进行整理,在Python中,获取网页表格的方法有多种,下面就跟随小编... 目录1. 使用Pandas的read_html2. 使用BeautifulSoup和pandas3.

PyQt6/PySide6中QTableView类的实现

《PyQt6/PySide6中QTableView类的实现》本文主要介绍了PyQt6/PySide6中QTableView类的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学... 目录1. 基本概念2. 创建 QTableView 实例3. QTableView 的常用属性和方法

Python装饰器之类装饰器详解

《Python装饰器之类装饰器详解》本文将详细介绍Python中类装饰器的概念、使用方法以及应用场景,并通过一个综合详细的例子展示如何使用类装饰器,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录1. 引言2. 装饰器的基本概念2.1. 函数装饰器复习2.2 类装饰器的定义和使用3. 类装饰

PyQt6/PySide6中QTreeView类的实现

《PyQt6/PySide6中QTreeView类的实现》QTreeView是PyQt6或PySide6库中用于显示分层数据的控件,本文主要介绍了PyQt6/PySide6中QTreeView类的实现... 目录1. 基本概念2. 创建 QTreeView 实例3. QTreeView 的常用属性和方法属性

Python 交互式可视化的利器Bokeh的使用

《Python交互式可视化的利器Bokeh的使用》Bokeh是一个专注于Web端交互式数据可视化的Python库,本文主要介绍了Python交互式可视化的利器Bokeh的使用,具有一定的参考价值,感... 目录1. Bokeh 简介1.1 为什么选择 Bokeh1.2 安装与环境配置2. Bokeh 基础2

Android使用ImageView.ScaleType实现图片的缩放与裁剪功能

《Android使用ImageView.ScaleType实现图片的缩放与裁剪功能》ImageView是最常用的控件之一,它用于展示各种类型的图片,为了能够根据需求调整图片的显示效果,Android提... 目录什么是 ImageView.ScaleType?FIT_XYFIT_STARTFIT_CENTE

pandas中位数填充空值的实现示例

《pandas中位数填充空值的实现示例》中位数填充是一种简单而有效的方法,用于填充数据集中缺失的值,本文就来介绍一下pandas中位数填充空值的实现,具有一定的参考价值,感兴趣的可以了解一下... 目录什么是中位数填充?为什么选择中位数填充?示例数据结果分析完整代码总结在数据分析和机器学习过程中,处理缺失数

Golang HashMap实现原理解析

《GolangHashMap实现原理解析》HashMap是一种基于哈希表实现的键值对存储结构,它通过哈希函数将键映射到数组的索引位置,支持高效的插入、查找和删除操作,:本文主要介绍GolangH... 目录HashMap是一种基于哈希表实现的键值对存储结构,它通过哈希函数将键映射到数组的索引位置,支持

Pandas使用AdaBoost进行分类的实现

《Pandas使用AdaBoost进行分类的实现》Pandas和AdaBoost分类算法,可以高效地进行数据预处理和分类任务,本文主要介绍了Pandas使用AdaBoost进行分类的实现,具有一定的参... 目录什么是 AdaBoost?使用 AdaBoost 的步骤安装必要的库步骤一:数据准备步骤二:模型