【办公类-19-02】Python批量制作word文本框的名字小标签,用A4word打印(植物角、家长会、值日生)

news2025/1/18 17:07:22

背景需求: 

 

2月28日去小班带班,看到班主任制作了一些小手印花束作为家长会的家长座位提示,上面贴着“”圆形白色的幼儿名字贴”。

我立刻想起了制作的过程——在word中插入文本框,然后复制无数个文本框,摆好位置,再把所有孩子的名字一个个黏贴进去。

(文本框的作用:主要是确定剪切的方位,圆形、方形外框比较常用)

(文本框名字贴常见用途:植物角植物的提供者、园所大厅里展示作业的作者、值日生挂牌……)

 植物里牌子(以前花盆里都插着塑封着孩子名字的吸管,现在都要求孩子自己的制作痕迹,打印的名字相对少了)

 

麻烦的地方:

1、为了圆形文本框一样大小,可以点击一个圆形,反复黏贴(像右下角反复念贴))

因而要手动把每个元素拖动成X*Y矩阵结构。

 矩阵 结构

 2、名字需要一个个黏贴进去,默认格式

 如果人数不多,手动操作也没有什么难度。但是如果遇到一下问题:

1、标签包含人数多,容易贴错——需要黏贴摆放100个圆形,黏贴100次名字。很容易疲劳,黏错名字。

2、文本框图形发生变化——如果标签外形不是圆形、而是梯形,就需要点一个圆形,修改转换一次。然后反复执行(无法批量全选改变)

 3、文本框图形大小变化——本次演示的是3CM直径的圆形。如果标签长款变大或缩小。也需要一个一个文本框的修改尺寸,调整里面名字的大小,(无法批量全选改变),同时还需要调整图形与图形之间的间距。 然后反复执行。

 需求思考:

在word里手动制作“文本框”的批量名字标签,图形及名字的黏贴属于完全的机械重复操作。我想是否可以利用Python+word+excel制作一个可以被批量制作的、可随时调整单一图形模板的代码。

设计过程:

在一个文件夹里的三个文件名称(py\xlsx\docx)

一、word模板(3CM文本框圆形)

新建一个Word模板,在里面插入一个圆形标签,中间输入{{name}},把线条颜色、字体设置成需要的颜色,单一的一个模板就做好了。

 一定要打几个回车空行,否则,批量出来的图案会黏在一起

 以下是没有加回车的结果,所有文本框黏在一起

 

二、EXCEL模板:

学号和名字(大部分情况便签上只打印幼儿名字,如果需要名字+学号,就做组合)。

 三、代码

# 一、导入相关模块,设定excel所在文件夹和生成word保存的文件夹
from docxtpl import DocxTemplate
import pandas as pd
import os
import xlwt
import xlrd
import os
import random
from win32com.client import constants,gencache
from win32com.client.gencache import EnsureDispatch
from win32com.client import constants # 导入枚举常数模块
import os,time
import docx
from docx import Document
from docx.shared import Pt 
from docx.shared import RGBColor
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
from docx.oxml.ns import qn


zpath=r'D:\\test\\02办公类\\09 姓名小标签'+'\\'

file_path=zpath+r'\临时'

# 二、遍历excel,逐个生成word(小标签.docx是前面的模板)
try:
    os.mkdir(file_path)
except:
    pass

tpl = DocxTemplate(zpath+'bq.docx')
list = pd.read_excel(zpath+'list.xlsx')
name = list["name"]
number =list['number'] # str.rstrip()用于去掉换行符


# 遍历excel行,逐个生成
num = list.shape[0]
for i in range(num):
    context = {
       "name": name[i],
       "number": number[i],
       
    #    "eng": eng[i]
    }
    tpl = DocxTemplate(zpath+'bq.docx')
    tpl.render(context)
    tpl.save(file_path+r"\学号{}.docx".format(i+1))


# 合并所有Word
import win32com.client as win32
import os
word = win32.gencache.EnsureDispatch('Word.Application')
#启动word对象应用
word.Visible = False
path = r'D:\test\02办公类\09 姓名小标签\临时'
files = []
for filename in os.listdir(path):
    filename = os.path.join(path,filename)
    files.append(filename)
#新建合并后的文档
output = word.Documents.Add()
for file in files:
    output.Application.Selection.InsertFile(file)#拼接文档
    #获取合并后文档的内容

doc = output.Range(output.Content.Start, output.Content.End)
output.SaveAs(r'D:\test\02办公类\09 姓名小标签\合并打印(需手动整理).docx') #保存

output.Close()

# # print('----------第5步:删除临时文件夹------------')    
import shutil
shutil.rmtree('D:\test\02办公类\09 姓名小标签\临时') #递归删除文件夹,即:删除非空文件夹

四、运行结果

 

成功合并了所有名字!!!

但docx格式需要调整——页边距上下左右0.7CM,分栏3-分栏5(测试)(此处后续再研究,如何把已有内容的word,用代码批量设置页边距和分栏)

 

其他展示效果

(举一反三,制作word文本框模板,可以大幅减少机械重复黏贴)

案例1:6CM文本框圆形-名字标签

 合并word的基本样式

 设置页边距和分栏后的效果

 调整回车符号(删除或增加回车)

 

案例2:4CM*2CM文本框长方形-名字标签

 

合并文档最开始的样式(名字都是虚拟的,加黑框无忌讳)

 

打印前效果。

 案例3:8*8CM爱心形状文本框-名字标签制作

合并文档初始效果

 调整页边距上下左右0.7、分栏2

 手动调试后的效果。

适合的名字数量2个名字、3个名字(4个名字就只显示3个名字,如果需要四个名字,手动把生成的四个名字的字号改小)

感悟: 

Python让我从机械重复的办公活动中寻找提高工作效率的新思路!

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

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

相关文章

Win11的两个实用技巧系列之设置系统还原点的方法、安全启动状态开启方法

Win11如何设置系统还原点?Win11设置系统还原点的方法很多用户下载安装win11后应该如何创建还原点呢?现在我通过这篇文章给大家介绍一下Win11如何设置系统还原点?在Windows系统中有一个系统还原功能可以帮助我们在电脑出现问题的时候还原到设置的时间上&…

spring循环依赖debug源码【Java面试第三季】

spring循环依赖debug源码【Java面试第三季】前言spring循环依赖debug源码35_spring循环依赖debug源码01全部Debug断点36_spring循环依赖debug源码0237_spring循环依赖debug源码0338_spring循环依赖debug源码04最后前言 本文是4.Spring【Java面试第三季】的小节 spring循环依赖…

守护进程与TCP通讯

目录 一.守护进程 1.1进程组与会画 1.2守护进程 二.创建守护进程 setsid函数: 三. TCP通讯流程 3.1三次握手: 3.2 数据传输的过程 3.3四次挥手 一.守护进程 1.1进程组与会画 进程组:进程组由一个进程或者多个进程组成,每…

谷歌优化排名怎么做出来的?谷歌排名多久做上去?

本文主要分享谷歌排名的算法机制,让你很容易地用更短的时间把Google的自然排名做到首页。 本文由光算创作,有可能会被剽窃和修改,我们佛系对待这种行为吧。 谷歌优化排名怎么做出来的? 答案是:持续更新原创优质内容…

让WPF中的DataGrid像Excel一样可以筛选

在默认情况下,WPF提供的DataGrid仅拥有数据展示等简单功能,如果要实现像Excel一样复杂的筛选过滤功能,则相对比较麻烦。本文以一个简单的小例子,简述如何通过WPF实话DataGrid的筛选功能,仅供学习分享使用,如…

唯品会财报:一面骄阳,一面寒霜

配图来自Canva可画 在互联网技术飞速发展、物流基础设施日益完善,以及消费者购物习惯不断改变等多重因素的共同影响下,电商行业实现了蓬勃发展。得益于此,电商行业也跑出了许多知名电商品牌,其中既有淘宝、京东、拼多多等综合型电…

SSRF漏洞原理、危害以及防御与修复

一、SSRF漏洞原理漏洞概述SSRF(Server-side Request Forge,服务端请求伪造)是一种由攻击者构造形成由服务端发起请求的安全漏洞。一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。正是因为它是由服务端发起的,所…

Java开发 - Elasticsearch初体验

目录 前言 什么是es? 为什么要使用es? es查询的原理? es需要准备什么? es基本用法 创建工程 添加依赖 创建操作es的文件 使用ik分词插件 Spring Data 项目中引入Spring Data 添加依赖 添加配置 创建操作es的业务逻…

深度学习常用的激活函数总结

各种激活函数总结 目录一、sigmoid二、tanh![在这里插入图片描述](https://img-blog.csdnimg.cn/a0d92552edf8464db793fdd2f2b75cb5.png)三、ReLU系列1.原始ReLU2.ReLU改进:Leaky ReLU四、swish五、GeLU一、sigmoid 优点: 1.可以将任意范围的输出映射到 …

高通平台开发系列讲解(Sensor篇)AlsPs的工作原理及介绍

文章目录 一、什么是ALS?二、什么是距感(PS)?三、AlsPs的工作原理四、AlsPs的特性五、距感的校准参数说明六、光感的校准参数说明沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇文章将介绍 AlsPs 的工作原理及介绍。 一、什么是ALS? 光感的英文叫做Ambient Li…

算法小抄2-刷题中Python的常用语法

标准数据类型 不可变数据类型: Number String Tuple 可变数据类型:List Dictionary Set 关于为什么会分成可变和不可变最后会讲到哦 Number Number支持int,float,bool,complex四种,其中int范围小且必须为整数,float范围较大,可以是是小数,bool值表示是否,complex为复数,赋值…

20- widedeep及函数式构建模型 (TensorFlow系列) (深度学习)

知识要点 wide&deep: 模型构建中, 卷积后数据和原始数据结合进行输出.fetch_california_housing:加利福尼亚的房价数据,总计20640个样本,每个样本8个属性表示,以及房价作为target,所有属性值均为number&#xff0…

网上医疗预约挂号系统

技术:Java、JSP等摘要:网上医疗预约挂号系统是主要是对居民的保健、护理、疾病预防等健康信息实行有效的预约挂号管理。医疗机构为居民建立完整的健康档案,安排体检以及实施免疫等预防措施。而基于Web的远程保健平台以网上医疗预约挂号系统为…

基于OMAPL138+FPGA核心板多核软件开发组件MCSDK开发入门(上)

本文测试板卡为创龙科技 SOM-TL138F 是一款基于 TI OMAP-L138(定点/浮点 DSP C674x + ARM9)+ 紫光同创 Logos/Xilinx Spartan-6 低功耗 FPGA 处理器设计的工业级核心板。核心板内部OMAP-L138 与 Logos/Spartan-6 通过 uPP、EMIFA、I2C 通信总线连接,并通过工业级 B2B连接器引…

分布式任务处理

分布式任务处理 1. 什么是分布式任务调度 视频上传成功需要对视频的格式进行处理,如何用Java程序对视频进行处理呢?这里有一个关键的需求就是当视频比较多的时候我们如何可以高效处理。 如何去高效处理一批任务呢? 1、多线程 多线程是充…

IDEA社区版环境配置和插件安装

一、Java环境安装 1.1 下载openjdk环境安装包 可以进华为镜像站进行下载。参考链接: Index of openjdk-local https://repo.huaweicloud.com/openjdk/ 1.2 配置Java环境 解压缩openjdk到任意路径,建议路径不要有中文。然后把路径的bin文件&#xff0…

新手小白亚马逊注册最全教程在此

自从龙哥出了Walmart注册教程后,立刻看到私信有兄弟问这个亚马逊的注册。亚马逊是跨境电商的鼻祖,资源和流量是无容置疑的。作为一个重产品,轻店铺的平台,是比较看中客户体验的,要求卖家要有好的资源。而且亚马逊有强大…

02-MyBatis查询-

文章目录Mybatis CRUD练习1,配置文件实现CRUD1.1 环境准备Debug01: 别名mybatisx报错1.2 查询所有数据1.2.1 编写接口方法1.2.2 编写SQL语句1.2.3 编写测试方法1.2.4 起别名解决上述问题1.2.5 使用resultMap解决上述问题1.2.6 小结1.3 查询详情1.3.1 编写接口方法1.…

改进YOLOv7-Tiny系列:首发改进结合BiFPN结构的特征融合网络,网络融合更多有效特征,高效涨点

💡该教程为改进进阶指南,属于《芒果书》📚系列,包含大量的原创首发改进方式, 所有文章都是全网首发原创改进内容🚀 内容出品:CSDN博客独家更新 @CSDN芒果汁没有芒果 💡本篇文章 基于 YOLOv5、YOLOv7芒果改进YOLO系列:芒果改进YOLOv7-Tiny系列:首发改进结合BiFPN结…

深度学习笔记:不同的反向传播迭代方法

1 随机梯度下降法SGD 随机梯度下降法每次迭代取梯度下降最大的方向更新。这一方法实现简单,但是在很多函数中,梯度下降的方向不一定指向函数最低点,这使得梯度下降呈现“之”字形,其效率较低 class SGD:"""随机…