也许你会遇到一个需求,需要批量制作给很多人的信,这些信的内容结构上都是一样的,只有一些细节是不一样的,那么你该怎么完成这个需求? 是一个个复制word内容吗?

实际案例

这里给大家介绍一个强大的功能,通过使用word的mergedField功能生成规范的word模板,在这里,给大家举个例子。我们的例子是个很贴近收物业费的例子,我们从excel中都能看到一个小区的业主姓名、单元号、楼层号、面积、物业费等信息,这里要针对每一个户生成一个单独的word文件。

我们先看一下这个excel的内容:

小区业主表

让我们再看一下这个小区的收取物业费的word的内容:

尊敬的XXX业主:

感谢您选择魏蜀吴小区,现小区收取2020年物业费,您位于X号楼X单元X号的房子共需要缴纳物业费XX元(XX平方米*2.2元/平方米),请您在看到该收据之后于本月月底到物业缴纳物业费,感谢您的支持。

魏蜀吴小区物业敬上

小区物业费的通知单

如果按照例子中的生成10个用户的信息我们通过复制粘贴的方式还能生成,但是小区都有几百户居民,这么再采用复制粘贴的模式就太痛苦了。

MergedField

我们用mergedField的模式,所谓MergedField也就是合并域,这里叫合并域是为了从外面加参数自动加载生成一份这样的文档。通过下面的动图,我们来告诉你怎么加入一

个mergedField:

上面的方式就是插入一个meregeField的方法,插入->文档部件->域->mergeField 然后在弹出来的对话框中填上域的名字就可以了。

当然我们还是需要先找到有这样能力的包,这个包叫mailmerge,我们通过

pip install mailmerge --user

把这个能力引入到python环境中。

代码实战

代码类似下面这样:

#coding:utf-8

import xlrd

from mailmerge import MailMerge

import os

#下面读取excle的内容然后进行存储

workbook = xlrd.open_workbook("word1.xlsx")

#下面对worksheet创建目录

work_sheet_list = workbook.sheet_names()

print(work_sheet_list)

for Sheet_Name in work_sheet_list:

try:

worksheet = workbook.sheet_by_name(Sheet_Name)

sheet_rows = worksheet.nrows

isExists = os.path.exists(Sheet_Name)

if not isExists:

os.makedirs(Sheet_Name)

# 从第二行开始

i = 1

# 一共有10行

end = sheet_rows print(end)

while i < end:

userName = worksheet.cell(i, 1).value

print(userName)

build_num = worksheet.cell(i, 2).value

unit_num = worksheet.cell(i, 3).value

hu_num = worksheet.cell(i, 4).value

squre = worksheet.cell(i, 5).value

squre_str = str(squre)

print(squre)

print(type(squre_str))

squre_money = float(squre) * 2.2

squre_money_str = str(squre_money)

template = "尊敬的XXX业主.docx"

document = MailMerge(template)

print(document.get_merge_fields())

document.merge(

BuildingN = str(build_num),

BuildingNum = str(build_num),

Num = str(hu_num),

Money = squre_money_str,

Square = squre_str )

print(Sheet_Name)

print(userName)

document.write(Sheet_Name + "\\" + userName + ".docx")

i += 1 print (i)

except ():

pass

最后生成的文档就是这样的样子:

最终,生成的文档都在被保存在程序目录下面。如果采用这种方式,是不是非常方便?心动了吗?你也自己试试。

python批量生成列表_Python编程实战:根据数据表格,快速批量生成符合规范的WORD文档...相关推荐

  1. python word中表格字体设置_利用Python-docx 读写 Word 文档中的正文、表格、段落、字体样式等...

    前言: 前两篇博客介绍了 Python 的 docx 模块对 Word 文档的写操作,这篇博客将介绍如何用 docx 模块读取已有 Word 文档中的信息. 本篇博客主要内容有: 1.获取文档的章节信 ...

  2. python分词统计词频_python jieba分词并统计词频后输出结果到Excel和txt文档方法

    前两天,班上同学写论文,需要将很多篇论文题目按照中文的习惯分词并统计每个词出现的频率. 让我帮她实现这个功能,我在网上查了之后发现jieba这个库还挺不错的. 运行环境: 安装python2.7.13 ...

  3. python秒表游戏代码_python编程实战:制作秒表程序

    现如今生活节奏的加快,再加个人们对营养的需求也是在不断加大.我们平时所食用的食物只有在它烹饪到刚刚好的时候才会把它自身的营养充分的发挥出来,可是我们一般对于它的时间方面不是很好把握,所以对于这一点,秒 ...

  4. python读取word指定内容_python解析html提取数据,并生成word文档实例解析

    简介 今天试着用ptyhon做了一个抓取网页内容,并生成word文档的功能,功能很简单,做一下记录以备以后用到. 生成word用到了第三方组件python-docx,所以先进行第三方组件的安装.由于w ...

  5. 办公室小姐姐的福利!用Python批量提取word文档中的表格和图片内容

    点上方"菜鸟学Python",选择"星标" 第491篇原创干货,第一时间送达 最近有许多小伙伴想要一些自动化办公的福利小程序,今天就满足大家的需求.日常的办公过 ...

  6. 基于模板替换的word文档自动生成

    简介 word文档自动生成程序是一个根据用户提供的模板word文档以及一些必要的数据文件来渲染生成所要的word文档的工具. 关键词:批量word文档生成.word文档渲染.自动生成word 使用场景 ...

  7. 如何将word文档生成二维码

    最近遇到很多客户咨询如何将word文档生成二维码,如何将视频生成二维码,目前二维码中是无法直接储存word文档,视频一类的,唯一的途径就是先把文档和视频信息上传到网站服务器上,然后在二维码生成器中利用 ...

  8. springboot下生成复杂word文档方案 在Word软件里面制作模板

    系列文章目录 第二章:根据模板导出word,复合格式表格生成.可变列表格生成 第三章:doc和docx插入多图 第四章:web环境下word文档预览 springboot freemarker 生成复 ...

  9. Python实现word文档的字数统计

    介绍:内子从宝宝出生写了好多宝宝的成长记录,想出本书,但不知道字数有多少,希望我把字数统计一下,但是文件夹下有近100个word文档,每个打开就相对麻烦,试着用python代码解决. 不多说,直接上代 ...

  10. 亿愿WORD文档内容搜索及工具集-打造最全面的OFFICE、pdf、txt等各类文件快捷批量处理工具

    [亿愿WORD文档内容搜索及工具集(YYWORDSearch)] 1)专业搜索指定目录下的WORD文件(*.DOC;*.DOCX;).WPS文件(*.WPS).Powerpoint文件(*.ppt;* ...

最新文章

  1. Java源码详解零:HashMap介绍
  2. python canvas画弧度_只要十分钟,python绘图神器turtle了解一下?
  3. stl-vector详解
  4. asp用于取代什么技术_ASP是不是已经被淘汰了?
  5. 深度学习英文文献_文献速递 | 预测术后30天死亡率的深度学习模型
  6. dubbo笔记+源码刨析
  7. onpagefinished等了很久才执行_今天自律了吗?停课不停锻炼 才是战疫正确姿势
  8. 2019届互联网校招本科薪酬清单
  9. python async socket_Python开发中常用的标准库,这些都是你应该掌握的
  10. 三星副会长李在镕启程赴美
  11. 漫画:什么是希尔排序?
  12. python缓存技术_高级Python技术:如何在Python应用程序中实现缓存
  13. Qt之音频播放(二)
  14. 神经网络入门之DNN(一)
  15. Java调用OpenDDS(1)-编译安装openDDS-补上了所有网络上其他文章遗漏的细节
  16. 快压软件的彻底删除方法
  17. Mac下复制粘贴的快捷键是什么?随记
  18. 第一讲:最能入门的爬虫教程(Python实现)
  19. 第七周--项目1-静态成员应用
  20. 最火爆的人工智能学习基础课程(2021人工智能视觉训练营)

热门文章

  1. 什么是驱动程序?为什么要用驱动程序?
  2. 10个较好在线商业理念
  3. 如何在Coldfusion中上传文件
  4. 求循环群的生成元及子群(不一定对-_-#)
  5. 十余种无限流量卡大对比,这一种的最实惠!
  6. 计算机桌面导航栏中删除内容,教你如何一键去除Windows桌面右击菜单多余选项-win7右键菜单管理...
  7. linux下安装jdk7
  8. 一加七pro计算机没有记录了,尽享速度与激情:一加7T Pro 迈凯伦版评测
  9. Tornado get/post请求异步处理框架分析
  10. git 怎么把以前的账号注销_QQ号被注销了,我的游戏账号怎么办?腾讯只用一句话让玩家没话说...