也许你会遇到一个需求,需要批量制作给很多人的信,这些信的内容结构上都是一样的,只有一些细节是不一样的,那么你该怎么完成这个需求? 是一个个复制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. css实现 textarea 高度自适应
  2. labview初始学习过程中遇到串口读取框红蓝色交替闪烁的处理
  3. 记录一次Docker For Windows10镜像加速器配置
  4. 基于zxing生成与解析二维码、条形码
  5. Android中的ContentValues用法
  6. php+转义实体字符,PHP针对HTML实体字符的转义函数
  7. mysql本地连接错误解决办法
  8. IPv6 解说 ,与IPv4的同异
  9. mysql 导入 xc2 xa0_Python 字符串处理特殊空格xc2xa0tn Non-breaking space
  10. 一个 可以在线播放 m3u8 的网页
  11. 综合布线系统技术是建设智慧城市的血脉
  12. Restful API详解
  13. EasyOrtho卫星影像处理软件
  14. 【牛客网】马三来刷题之顺时针旋转矩阵
  15. 微软:今天起加速推广Windows 11,让更多设备免费升级
  16. C# web 讯飞语音在线合成 错误10111
  17. Android DVM简介
  18. 教你用人工智能写文章写歌词写对联
  19. Android自定义垂直 SeekBar
  20. 【详细】国内网站备案流程与步骤

热门文章

  1. 用python编写倒计时_python如何倒计时
  2. word 的使用 —— 快捷键(分节符、分页符、分栏符)
  3. matlab怎么定义矩阵变量_MATLAB01:基本的数学运算与矩阵运算
  4. react 中的userReducer
  5. 联通鸿蒙卡怎么样,联通不限流量卡,联通无限流量,正规资费
  6. android 百度地图走动轨迹,百度地图实现小车规划路线后平滑移动功能
  7. Sonarqube基础篇:property设定
  8. 用c语言实现图片的任意倍数缩小和放大
  9. 大白话5分钟带你走进人工智能-第十六节逻辑回归之分类的原因(1)
  10. C++“打鱼晒网”问题