【办公类-19-03】办公中的思考——Python批量制作word单元格照片和文字(小照片系列)

这篇具有很好参考价值的文章主要介绍了【办公类-19-03】办公中的思考——Python批量制作word单元格照片和文字(小照片系列)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景需求:

工会老师求助:如何在word里面插入4*8的框,我怎么也拉不到4*8大小(她用的是我WORD 文本框)

【办公类-19-03】办公中的思考——Python批量制作word单元格照片和文字(小照片系列),Python,python,word,开发语言

我一听,这又是要手动反复黏贴“文本框”“照片”“文字”的节奏哦

我问:你要做几个人?超过20个,我写个程序批量插图(写代码测试要费时间,如果数量少不如手动做)

工会老师:大约十几个人吧,你能直接插图?我一个个弄太麻烦了。

我说:OK,你把照片和文字发给我吧

材料准备:

全部材料路径(红框两个必备)

【办公类-19-03】办公中的思考——Python批量制作word单元格照片和文字(小照片系列),Python,python,word,开发语言

第一步:word框架

【办公类-19-03】办公中的思考——Python批量制作word单元格照片和文字(小照片系列),Python,python,word,开发语言

【办公类-19-03】办公中的思考——Python批量制作word单元格照片和文字(小照片系列),Python,python,word,开发语言

重要的事情!!!

【办公类-19-03】办公中的思考——Python批量制作word单元格照片和文字(小照片系列),Python,python,word,开发语言

第二步:图片下载,用“序号+名言+JPG” 方式命名照片

【办公类-19-03】办公中的思考——Python批量制作word单元格照片和文字(小照片系列),Python,python,word,开发语言

【办公类-19-03】办公中的思考——Python批量制作word单元格照片和文字(小照片系列),Python,python,word,开发语言

图片文件名结构——“序号”+“名言”+".jpg"

每位老师的序号和名言都不同

【办公类-19-03】办公中的思考——Python批量制作word单元格照片和文字(小照片系列),Python,python,word,开发语言

【办公类-19-03】办公中的思考——Python批量制作word单元格照片和文字(小照片系列),Python,python,word,开发语言

【办公类-19-03】办公中的思考——Python批量制作word单元格照片和文字(小照片系列),Python,python,word,开发语言

WORD里面表格的文字就是提取“图片名称里面的索引”2“到导引”倒数-4“中间的内容(留头,不留尾巴,尾部索引+1)

【办公类-19-03】办公中的思考——Python批量制作word单元格照片和文字(小照片系列),Python,python,word,开发语言

代码展示:


'''
工会小照片插入同一个WORD里
阿夏
时间:2023年9月7日)

'''
import os
from PIL import Image 
import random

import os,time
import docx
from docx import Document
from docx.shared import Inches,Cm,Pt
from docx.shared import RGBColor
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
from docx.oxml.ns import qn

from docxtpl import DocxTemplate
import pandas as pd
from docx2pdf import convert
from docx.shared import RGBColor


print('----------第1步:把打照片变成小照片------------')

# 减小图片质量像素
pr=r"C:\Users\jg2yXRZ\OneDrive\桌面\工会教师小照片\教师照片座右铭"

# 新建小图文件夹
smallpath=pr[:-7]+'\\'+'教师照片座右铭(小图)'
os.mkdir(smallpath)

imgs1=os.listdir(pr)
print(imgs1)
for img1 in imgs1:
    # print(img1)
    if img1.endswith(".jpg"):
        a=pr+'\\'+img1        

        # 减小图片质量像素
        img = Image.open(a)
        w,h = img.size
        w,h = round(w * 0.2),round(h * 0.2)		
        # // 去掉浮点,防报错
        
        img = img.resize((w,h), Image.ANTIALIAS)
        img.save(smallpath+'\\'+img1, optimize=True, quality=85)        # 9.99MB照片变成127KB	
        # 质量为85效果最好

print('----------第2步:读取写入小照片和文字------------')

path=[]
name=[]
imgs2=os.listdir(smallpath)
for img2 in imgs2:
    if img1.endswith(".jpg"):
        path.append(smallpath+'\\'+img2)
        name.append(img2[2:-4])
print(path)
print(name)

# 制作零时文件夹
lspath=pr[:-7]+'\\'+'零时Word'
os.mkdir(lspath)

# 制作12个docx
for z in range(0,len(path)):   
    doc = Document(r'C:\Users\jg2yXRZ\OneDrive\桌面\工会教师小照片\模板.docx')
#     # 制作列表
    # 单元格位置3*4格
    table = doc.tables[0]          # 4567(8)                 
    k=path[z] 
    k2=name[z]   

    # 写入图片
    run=doc.tables[0].cell(0,0).paragraphs[0].add_run()        # 在第1个表格中第2个单元格内插入国旗
    run.add_picture('{}'.format(k),width=Cm(3.5),height=Cm(6))
    table.cell(0,0).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.LEFT #居中  
    
    # 写入序号和生肖名称
    run=table.cell(1,0).paragraphs[0].add_run(k2)    # 在单元格0,0(第1行第1列)输入第0个图图案
    run.font.name = '楷体'#输入时默认华文彩云字体
    # run.font.size = Pt(46)  #输入字体大小默认30号 换行(一页一份大卡片
    run.font.size = Pt(10)  #输入字体大小默认30号 一行里(可以一页两份)
    run.font.bold= True  #是否加粗
    run.font.color.rgb = RGBColor(0,0,0) #数字小,颜色深0-255
    # paragraph.paragraph_format.line_spacing = Pt(180) #数字段间距
    
    r = run._element
    r.rPr.rFonts.set(qn('w:eastAsia'), '楷体')#将输入语句中的中文部分字体变为华文行楷
    table.cell(1,0).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.CENTER #居中     

    endlisth=lspath+'\\{}.docx'.format(z)
    doc.save(endlisth) 
 
print('----------第3步:doc 文档合并------------') 

# 合并所有Word
import win32com.client as win32
import os
word = win32.gencache.EnsureDispatch('Word.Application')
#启动word对象应用
word.Visible = False
path = lspath
files = []
for filename in os.listdir(path):
    filename = os.path.join(path,filename)
    files.append(filename)
    
#新建合并后的文档(使用模板,进行12个文件夹的合并,把12个文件夹的内容贴到已有的模板(包含0.7边、四分栏))
output = word.Documents.Add(r'C:\Users\jg2yXRZ\OneDrive\桌面\工会教师小照片\模板.docx')
for file in files:
    output.Application.Selection.InsertFile(file)#拼接文档
    #获取合并后文档的内容

doc = output.Range(output.Content.Start, output.Content.End)

# 合并word
lspathall=pr[:-7]+'\\小照片合并打印(需手动整理).docx'

output.SaveAs(lspathall) #保存
output.Close()

print('----------第4步:删除临时文件夹------------')    
import shutil
shutil.rmtree(lspath) #递归删除文件夹,即:删除非空文件夹
shutil.rmtree(smallpath) 

# 合并word打开
lspathall=pr[:-7]+'\\小照片合并打印(需手动整理).docx'


   

终端运行(直接运行)

【办公类-19-03】办公中的思考——Python批量制作word单元格照片和文字(小照片系列),Python,python,word,开发语言

运行中,先出现“小图”文件夹(最后会删掉)

(这些黄衣服的照片是请摄影师拍摄的,每张图片10MB,如果插到word里,整个word太大了,所以先压缩成小图)

【办公类-19-03】办公中的思考——Python批量制作word单元格照片和文字(小照片系列),Python,python,word,开发语言

【办公类-19-03】办公中的思考——Python批量制作word单元格照片和文字(小照片系列),Python,python,word,开发语言

【办公类-19-03】办公中的思考——Python批量制作word单元格照片和文字(小照片系列),Python,python,word,开发语言

做小图的代码(质量改成85)

运行中,其次会出现“零时WORD”文件夹,这是存放13个文档(每个文档只有一个单元格,不同的照片和其喜欢的名言)

 【办公类-19-03】办公中的思考——Python批量制作word单元格照片和文字(小照片系列),Python,python,word,开发语言

【办公类-19-03】办公中的思考——Python批量制作word单元格照片和文字(小照片系列),Python,python,word,开发语言

【办公类-19-03】办公中的思考——Python批量制作word单元格照片和文字(小照片系列),Python,python,word,开发语言

word合并版

【办公类-19-03】办公中的思考——Python批量制作word单元格照片和文字(小照片系列),Python,python,word,开发语言

【办公类-19-03】办公中的思考——Python批量制作word单元格照片和文字(小照片系列),Python,python,word,开发语言

【办公类-19-03】办公中的思考——Python批量制作word单元格照片和文字(小照片系列),Python,python,word,开发语言【办公类-19-03】办公中的思考——Python批量制作word单元格照片和文字(小照片系列),Python,python,word,开发语言

运行结束:

【办公类-19-03】办公中的思考——Python批量制作word单元格照片和文字(小照片系列),Python,python,word,开发语言

【办公类-19-03】办公中的思考——Python批量制作word单元格照片和文字(小照片系列),Python,python,word,开发语言

必须调整图片质量(制作小图)的意义

【办公类-19-03】办公中的思考——Python批量制作word单元格照片和文字(小照片系列),Python,python,word,开发语言

调整:

发给领导后,领导提示修改意见

【办公类-19-03】办公中的思考——Python批量制作word单元格照片和文字(小照片系列),Python,python,word,开发语言

这一刻觉得写个代码太值得了,只要微调一个格子,就能批量做13份照片,绝对比人工调13次表格和照片方便!!!

调整方法:单元格宽度修改

【办公类-19-03】办公中的思考——Python批量制作word单元格照片和文字(小照片系列),Python,python,word,开发语言           【办公类-19-03】办公中的思考——Python批量制作word单元格照片和文字(小照片系列),Python,python,word,开发语言

现在就是3.5*8的单元格(包含小照片和名言)

【办公类-19-03】办公中的思考——Python批量制作word单元格照片和文字(小照片系列),Python,python,word,开发语言

其他提示:关于表格与表格之间的空行

【办公类-19-03】办公中的思考——Python批量制作word单元格照片和文字(小照片系列),Python,python,word,开发语言

如果不空第一行会出现什么结果呢?

【办公类-19-03】办公中的思考——Python批量制作word单元格照片和文字(小照片系列),Python,python,word,开发语言

结果,虽然第一张照片顶格了,但是图片与图片之间被表格黏连了(一个空行回车也在表格)

【办公类-19-03】办公中的思考——Python批量制作word单元格照片和文字(小照片系列),Python,python,word,开发语言

【办公类-19-03】办公中的思考——Python批量制作word单元格照片和文字(小照片系列),Python,python,word,开发语言

需求:工会老师要用花边剪刀裁剪,就需要每张小照片周边都是白色边框,所以我还是让“模板边框前面的一行回车空行,确保,每个小照片周边都是白色。”

就是需要打开后手动删除第一行的回车。确保每张照片都是矩阵排列。

【办公类-19-03】办公中的思考——Python批量制作word单元格照片和文字(小照片系列),Python,python,word,开发语言文章来源地址https://www.toymoban.com/news/detail-701956.html

感悟:

前几天我总是问老师:数量多不多?多的话(超过10个)我写个代码批量做一下(写代码、测试代码都要时间)。少的话(10个以内)手动做吧(速度更快)

今天我觉得:既然同事们来求助,一定是潜意识希望有一个提高制作效率的方法,手动复制黏贴有点累、烦。

现在哪怕只有5个重复黏贴电脑操作,我也希望用代码(word模板、EXCEL)。因为手动做一次没问题,但一旦需要调整大小样式,就出现大量的重复操作,让人感觉低效、琐碎、不值得

小结:python批量解决这个问题,大大减少人工重复劳动。

1、在遇到输入错误(手动操作有遗漏、错误)时,可以快速批量修正,提高正确率

2、在遇到模板调整(字体、大小、颜色)时,更能以一当百,自动复制黏贴,快速生成统一新样式,极大提高工作效率。

进步:

上一次制作WORD文本框(爱心、五角星)标签字帖(只能插入EXCEL文字){{name}},

本次运用word表格单元格(正方形、长方形)制作照片帖(可以写入文字和照片),进一步丰富了批量办公制作的范畴。(读取列表,写入单元格)

继续探究更多python与办公的可能性,提高工作效率。优化版式结构。

到了这里,关于【办公类-19-03】办公中的思考——Python批量制作word单元格照片和文字(小照片系列)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • office办公技能|word中的常见通配符使用

    操作方法: 1、快捷键 Ctrl+H,打开Word的查找替换窗口,单击【更多】按钮,勾选“使用通配符”。 2、在查找内容处,输入“替换内容*^13”,替换为处什么都不填。 3、单击【全部替换】。 (1)点击【开始】-【编辑】-【替换】按钮或按【Ctrl+H】组合键,打开“查找与替换”

    2024年01月20日
    浏览(50)
  • 【办公技巧】Word中如何对齐选择题中的ABCD选项?

    使用word文件制作试卷,如何将ABCD选项全部设置对齐?除了一直按空格或者Tab键以外,还有其他方法吗?今天分享如何将ABCD选项对齐。 首先,我们打开【替换和查找】,在查找内容输入空格,然后点击全部替换 然后我们再打开【替换和查找】功能,这次我们在查找内容输入

    2024年01月23日
    浏览(123)
  • python--自动化办公(Word)

    python自动化办公之—Word python-docx库

    2024年02月04日
    浏览(41)
  • c# 操作word中的表格 批量复制和批量插入

    用的是windows自带的dll包,没有引用第三方 批量插入表格后,原理就是整个文档会从前到后编制表格索引,从一开始意思是前面序号为1.2.3表格,1复制3个在后面,那么原先的2表格序号就标为2+3=5!为表格设置各种值也是按这个序号来!

    2024年02月08日
    浏览(46)
  • python办公自动化(6)——读取word文档

    因为我们要进行文件相关的操作,所以需要在一开始使用import导入Python内置的os模块。 我们需要先获取该文件夹下所有的答题卡列表,再使用for循环遍历文件夹中所有学生的答题卡,以便之后逐个读取信息。 完成了第一个步骤,接下来,我们就需要在for循环里,依次获取每位

    2023年04月08日
    浏览(46)
  • Python 自动化办公:一键批量生成 PPT

    Stata and Python 数据分析 一、导读 在实际工作中,经常需要批量处理Office文件,比如需要制作一个几十页的PPT进行产品介绍时,一页一页地制作不仅麻烦而且格式可能不统一。那么有什么办法可以一键生成PPT呢?Python提供的pptx 包就可以用来自动化处理ppt。 pytho****n-pptx 是一个

    2024年01月17日
    浏览(60)
  • python自动化办公——读取PPT写入word表格

    📖由于我们知识图谱课程需要将课堂小组汇报的PPT总结成word文档,而我觉得一页一页复制PPT中的内容比较麻烦,所以直接安排:读PPT写word 🚗需要操作PPT幻灯片和word文档,所以需要导入docx 和pptx两个包 这里我的docx使用的是0.2.4版本 pptx使用的是0.6.21版本供参考 引入os、ppt

    2024年02月11日
    浏览(32)
  • 【办公自动化】使用Python批量生成PPT版荣誉证书

    🤵‍♂️ 个人主页:@艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞👍🏻 收藏 📂加关注+ 目录 一、Python处理PPT 二、批量生成PPT版荣誉证书  三、往期推荐           使用Python处

    2024年02月12日
    浏览(34)
  • python-自动化篇-办公-批量新建文件夹并保存日志信息

    因为业务需要,每天都需要按当天的日期创建很多新文件夹。把这种重复又繁重的操作交给Python来做,一直是我的目标。先说下要求: 默认在桌面新建文件夹。 文件夹命名方式,“月.日-1”,比如7.8-1,7.8-2。7是代表当天的月份,不能显示07。8是代表当天的日期,不能显示

    2024年02月20日
    浏览(37)
  • 实用VBA:17.大量word文件中的文本内容进行批量替换

    在工作中可能会遇到需要对大量word文件中的文字内容进行批量替换的情况。相比excel的批量处理,个人感觉word文档中由于包含大量样式信息,批处理时总感觉有顾虑。一者担心影响了文档的格式,误修改了文档的样式,那后果……整过文档的小伙伴都懂的;二者担心批处理不

    2024年01月25日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包