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

news2025/7/7 5:52:00

背景需求: 

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/379010.html

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

相关文章

【AI绘画】绝美春天插画,人人都是插画师

春天,自然界重新苏醒,生机勃勃,百花争艳,万籁俱寂。一切都被新的生命活力所染上。春风拂面,一股清新的空气流过,仿佛带着一种神秘的力量,让人心旷神怡,心情舒畅、轻松愉悦。 突然&a…

549、RocketMQ详细入门教程系列 -【消息队列之 RocketMQ(三)】 2023.02.28

目录一、Spring 整合 RocketMQ1.1 消息生产者1.2 消息消费者1.3 Spring 配置文件1.4 运行实例程序二、参考链接一、Spring 整合 RocketMQ 不同于 RabbitMQ、ActiveMQ、Kafka 等消息中间件,Spring 社区已经通过多种方式提供了对这些中间件产品集成,例如通…

WebRTC Opus编码器的创建与参数细节分析( sdp -> native )

这几天在做一些WebRTC音频改进方面的调查工作,在阅读Chromium源码的过程中,就顺便记录下来,便于日后回顾。本文基于Chromium 85源码分析,由于Chromium的快速发展,很有可能不适合于跨度太大的Chromium版本。大家知道Opu…

QT学习14:QtXlsx操作Excel表

一、前言操作excel方式有:QAxObject 和QtXlsx区别:Qt自带的QAxObject库操作excel的前提是电脑已经安装微软的Office(包含EXCEL),而QtXlsx可以直接使用免装Office且操作更简单。二、QtXlsx操作示例参考:http…

C筑基——深入理解内存对齐

目录1 前言2 正文2.1 为什么要有内存对齐?2.2 内存对齐原则2.2.1 基本数据类型是自然对齐的2.2.2 包含基本数据类型成员的结构体套用结构体内存对齐原则来分析使用 gdb 查看这两个结构体的成员内存位置结构体类型变量是自然对齐的吗?2.2.3 数组类型2.3 修…

今天 4 点,龙蜥自动化运维平台SysOM 2.0的诊断中心功能介绍 | 第 66-68 期

本周 3 期「龙蜥大讲堂」预告来啦!我们邀请了系统运维 SIG Contributor 阙建明分享《SysOM 2.0 诊断中心功能介绍》,龙蜥社区云原生机密计算 SIG Maintainer、Intel 高级云计算软件工程师黄晓军分享《Intel HE Toolkit 介绍》主题演讲,龙蜥社…

【Linux】操作系统与Linux — Linux概述、组成及目录结构

目录 一、什么是操作系统?都有那些? 二、Linux概述 三、Linux组成 三、Linux目录结构 四、Linux目录结构 💟 创作不易,不妨点赞💚评论❤️收藏💙一下 一、什么是操作系统?都有那些&#x…

频率信号转电压或电流信号隔离变送器0-1KHz /0-5KHz /0-10KHz转0-2.5V/0-5V/0-20mA

主要特性:>> 精度等级&#xff1a;0.2级>> 全量程内极高的线性度&#xff08;非线性度<0.1%&#xff09; >> 辅助电源/信号输入/信号输出&#xff1a; 2500VDC 三隔离>> 辅助电源&#xff1a;5VDC&#xff0c;12VDC&#xff0c;24VDC等单电源供电&g…

2020蓝桥杯真题约数个数(填空题) C语言/C++

题目描述 本题为填空题&#xff0c;只需要算出结果后&#xff0c;在代码中使用输出语句将所填结果输出即可。 1200000 有多少个约数&#xff08;只计算正约数&#xff09;。 运行限制 最大运行时间&#xff1a;1s 最大运行内存: 128M 所需变量 int a 1200000;//初始最大数 i…

模式识别 —— 第一章 贝叶斯决策理论

模式识别 —— 第一章 贝叶斯决策理论 前言 新的学期开始了&#xff0c;当然是要给不爱吃香菜的月亮记录学习笔记呀~ 没多久了&#xff0c;待夏花绚烂之时~人山人海&#xff0c;我们如约而至&#xff01; 以后清河海风 溶溶月色 共赏之人 就在身侧 mua~ 文章目录模式识别 —…

【服务器数据恢复】HP EVA存储lun丢失的数据恢复案例

服务器故障&检测&分析&#xff1a; 某品牌EVA存储设备中的RAID5磁盘有两块硬盘掉线&#xff0c;lun丢失。硬件工程师对故障服务器进行物理故障检测&#xff0c;发现掉线硬盘能够正常读取&#xff0c;无物理故障&#xff0c;也没有发现坏道。 故障服务器掉线硬盘没有物理…

深度理解Redux原理并实现一个redux

Redux的作用是什么 Redux的作用在于实现状态传递、状态管理。在这里你可能会说了&#xff0c;如果是状态传递&#xff0c;那我props的传递不也是可以达到这样的效果吗&#xff1f;context上下文方案不也是可以达到这样的效果吗&#xff1f;没错&#xff0c;是这样的&#xff0…

汇川SV660N与基恩士 KV7500 控制器调试说明

1. 伺服相关部分配置 1.1 伺服相关版本 SV660N 试机建议使用“SV660N-Ecat_v0.09.xml”及以上设备描述文件。 SV660N 单板软件版本建议为“H0100901.4”及更高版本号。 1.2 相关参数说明 SV660N 对象字典中 60FD 的含义较 IS620N 有所更改&#xff1a;bit0、1、2 分别为负限位…

移动字母--降维与DFS

一、题目描述 2x3=6 个方格中放入 ABCDE 五个字母,右下角的那个格空着。如下图所示。 和空格子相邻的格子中的字母可以移动到空格中,比如,图中的 C 和 E 就可以移动,移动后的局面分别是: A B D E C A B C D E 为了表示方便,我们把 6 个格子中字母配置用一个串表示出…

如何创建出实用的员工手册?

员工手册主要是企业内部的人事制度管理规范&#xff0c;包含企业规章制度和企业文化&#xff0c;同时还起到了展示企业形象、传播企业文化的作用。它既覆盖了企业人力资源管理的各个方面规章制度的主要内容&#xff0c;又因适应企业独特个性的经营发展需要而弥补了规章制度制定…

【HTML】列表结构

列表结构HTML效果HTML <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdev…

HIVE --- zeppelin安装

目录 把zeppelin压缩包拷贝到虚拟机里面 解压 改名 修改配置文件 编辑zeppelin-site.xml—将配置文件的ip地址和端口号进行修改 编辑 zeppelin-env.sh—添加JDK和Hadoop环境 配置环境变量 刷新环境变量 拷贝Hive文件 拷贝外部文件 启动zeppelin 启动Hadoop&Hi…

Web API接口鉴权方式

一、什么是鉴权&#xff1f;为什么要鉴权 鉴权&#xff08;authentication&#xff09;&#xff0c;也叫做认证&#xff0c;即验证用户是否拥有访问系统的权利。 HTTP本身是无状态的请求&#xff0c;每次请求都是一次性的&#xff0c;并不会知道请求前后发生了什么。但在很多…

记一次linux服务器磁盘空间占满的问题排查

问题&#xff1a;服务器安装后两天&#xff0c;发现磁盘空间使用满了【date: write error: No space left on device】问题排查&#xff1a;1、使用df -hl命令查看2、使用du -hl --max-depth1&#xff0c;从根目录开始查起&#xff0c;最后发现&#xff0c;磁盘的空间全部被/va…

自学5个月Java找到了9K的工作,我的方式值得大家借鉴 第二部分

我的学习心得&#xff0c;我认为能不能自学成功的要素有两点。 第一点就是自身的问题&#xff0c;虽然想要转行学习Java的人很多&#xff0c;但是非常强烈的想要转行学好的人是小部分。而大部分人只是抱着试试的心态来学习Java&#xff0c;这是完全不可能的。所以能不能学成Jav…