前言:
今天小伙伴们对“python邮件表格”大概比较关注,看官们都想要学习一些“python邮件表格”的相关资讯。那么小编在网上汇集了一些关于“python邮件表格””的相关资讯,希望各位老铁们能喜欢,同学们一起来学习一下吧!实例12—python替代邮件合并的代码(结合docx综合案例)
场景需求:
在正常的教育教学中,经常牵涉到批量生成文档的时候,比如:学生录取通知书、学生奖状、学生家长告知书,当然其他领域类似的问题举不胜举,只要牵涉到批量、牵涉到文本,Word的邮件合并都会派上用场,其实邮件合并很简单,只需要动手点点点,什么,你不会邮件合并,那好,比邮件合并更轻松的来了。
结合对应视频看更轻松<全网首发python办公自动化openpylx结合docx实现邮件合并>
邮件合并让道吧, 不足20行代码,改改数字批量处理全不怕
所谓的批量,就是相似的操作循环地做个不停,这对人来说就是没有技术含量的重复劳动,这个计算机是最擅长的,那就交给它吧。
1、用到的知识点:
Python的for循环、python处理excel的openpyxl模块、处理Word的python-docx模块,Python函数定义,wb对象基本操作包括打开,ws的操作遍历读取等。
2、操作步骤思维导图:
核心思想:循环遍历excel表格中的每一行,找到对应真实数据,替换Word模板中的变化的量
3、用到的文件:
举个栗子:以期末考试结束后,发放学生奖状为例子,两个文件截图如下
思路就是遍历表格中的name和honor,遍历一行,取代一次,保存一份奖状
特别强调:1、模板图片要在文本下面固定,2、文字是普通的,不能是文本框中的!!!
用到的文件保存到阿里云盘,请自行下载,代码还是自己敲一遍为好。「邮件合并用文档」
有python,还要什么邮件合并
4、代码操作编写截图:
from openpyxl import load_workbookfrom docx import Document#打开表格wb = load_workbook('students.xlsx)ws = wb['Sheet1']#定义替换函数def repalceText(document,old_str,new_str): for paragraph in document.paragraphs:#b遍历每一段,这里是Word模板的 if old_str in paragraph.text: for run in paragraph.runs: #确保替换的就数据在模板中存在 if old_str in run.text: run.text = run.text.replace(old_str,new_str) #存在替换新数据,也就是真实数据for i in range(2,ws.max_row+1): #循环遍历表格每行 document = Document('奖状模板.docx')# 遍历一次,新打开一次 name_new = ws.cell(i,1).value #找到真实name honor_new = ws.cell(i,2).value #找到真实honor replaceText(document,'name',name_new) # 替换掉模板中的name replaceText(document,'honor',honor_new) # 替换掉模板中的honor document.save(f'{name_new}的获奖证书.docx') # 循环一次打印以用户名命名的奖状
不足20行代码,不会邮件合并怕个啥,打印多少证书都不怕
不添加注释,仅仅17行代码,举一反三,仅仅需要改第4、14,15,16行中的个别变量,希望你能融会贯通,活学活用。
标签: #python邮件表格