Python操作Word批量生成文章的方法


Posted in Python onJuly 28, 2015

下面通过COM让Python与Word建立连接实现Python操作Word批量生成文章,具体介绍请看下文:

需要做一些会议记录。总共有多少呢?五个地点x7个月份x每月4篇=140篇。虽然不很重要,但是140篇记录完全雷同也不好。大体看了一下,此类的记录大致分为四段。于是决定每段提供四种选项,每段从四选项里随机选一项,拼凑成四段文字,存成一个文件。而且要打印出来,所以准备生成一个140页的Word文档,每页一篇。

需要用到win32com模块(下载链接: http://sourceforge.net/projects/pywin32/files/ ),

通过COM让Python与Word建立连接。代码如下:

# -*- coding: cp936 -*-
#导入随机数模块
import random
#导入win32com模块,用来操作Word
import win32com 
from win32com.client import Dispatch, constants
#创建新的WORD文档
w = win32com.client.Dispatch('Word.Application')
w.Visible = 0#0表示在后台操作。设为1则在前端能看到Word界面。
w.DisplayAlerts = 0#不显示警告
doc = w.Documents.Add()
#准备对文档头部进行操作
myRange = doc.Range(0,0)#从第0行第0个字开始:
myRange.Style.Font.Name = "宋体"#设置字体
myRange.Style.Font.Size = "16"#设置为三号
#========以下为文章的内容部分=======
#文章标题(用\n来控制文字的换行操作)
title='XXXXX会\n会议时间: '
#会议时间
timelist=['1月9日','1月16日','1月23日','1月30日',
 '2月6日','2月13日','2月20日','2月27日',
 '3月6日','3月13日','3月20日','3月27日',
 '4月3日','4月10日','4月17日','4月24日',
 '5月8日','5月15日','5月22日','5月29日',
 '6月5日','6月12日','6月19日','6月26日',
 '7月3日','7月10日','7月17日','7月24日'
 ]
#会议地点
addrlist=['\n会议地点: 地点AXXX\n主持人: 张X\n',
 '\n会议地点: 地点BXXXX主持人: 吴X\n',
 '\n会议地点: 地点CXXXX\n主持人: 王X\n',
 '\n会议地点: 地点DXXXX\n主持人: 冉X\n',
 '\n会议地点: 地点EXXXX\n主持人: 李X\n',
 ]
#参加人员
member='参加人员: XXX,XXX,XXX,XXX,XXX,XXX,XXX。\n会议内容:\n '
#四段文字
list1=['第一段(A型)\n','第一段(B型)\n','第一段(C型)\n','第一段(D型)\n']
list2=['第二段(A型)\n','第二段(B型)\n','第二段(C型)\n','第二段(D型)\n']
list3=['第三段(A型)\n','第三段(B型)\n','第三段(C型)\n','第三段(D型)\n']
list4=['第四段(A型)\n','第四段(B型)\n','第四段(C型)\n','第四段(D型)\n']
#开始循环操作,往Word里面写文字
 #先开始遍历地点(A,B,C,D,E四个地区)
for addr in addrlist:
 #遍历28个日期
 for time in timelist:
 #随机生成四个数(范围0-3)
 aa=random.randint(0,3)
 bb=random.randint(0,3)
 cc=random.randint(0,3)
 dd=random.randint(0,3)
 #从文件开头依次插入标题、时间、地点、人物
 myRange.InsertAfter(title)
 myRange.InsertAfter(time)
 myRange.InsertAfter(addr)
 myRange.InsertAfter(str3)
 #在后面继续添加随机选取的四段文字
 myRange.InsertAfter(list1[aa])
 myRange.InsertAfter(list2[bb])
 myRange.InsertAfter(list3[cc])
 myRange.InsertAfter(list4[dd])
#循环完毕,保存为 D:\d.doc
doc.SaveAs(r'D:\d.doc')
#退出操作
doc.Close()
w.Quit()

最终结果如图:

================================================================

Python操作Word批量生成文章的方法

==============================================================

写在最后:

由于写的比较仓促,所以有些细节问题没能解决,花了20分钟手动调整了一下。觉得有些屈辱。问题如下:

1.正文是三号字体,所以在range处的字号设置了“16”。想让题目是二号字体、居中显示。

2.如何在第四段写完之后,自动插入一个分页符?这样每篇文章打印出来的都有独立的页,不至于出现“第2篇文章的标题紧跟在第1篇文章的屁股后面、打印在了同一张纸上”的情况。

以上就是本文全部介绍,希望对大家学习Python操作Word批量生成文章的方法有所帮助

Python 相关文章推荐
Python最基本的数据类型以及对元组的介绍
Apr 14 Python
Python for Informatics 第11章 正则表达式(一)
Apr 21 Python
python用装饰器自动注册Tornado路由详解
Feb 14 Python
不可错过的十本Python好书
Jul 06 Python
python如何把嵌套列表转变成普通列表
Mar 20 Python
对python中Matplotlib的坐标轴的坐标区间的设定实例讲解
May 25 Python
Python(TensorFlow框架)实现手写数字识别系统的方法
May 29 Python
python读取Excel实例详解
Aug 17 Python
Keras 使用 Lambda层详解
Jun 10 Python
Python将字典转换为XML的方法
Aug 01 Python
Django URL参数Template反向解析
Nov 24 Python
Python基于Faker假数据构造库
Nov 30 Python
Python实现批量转换文件编码的方法
Jul 28 #Python
Python中subprocess的简单使用示例
Jul 28 #Python
Python中文竖排显示的方法
Jul 28 #Python
Python中的getopt函数使用详解
Jul 28 #Python
Python3访问并下载网页内容的方法
Jul 28 #Python
python3抓取中文网页的方法
Jul 28 #Python
python列表操作之extend和append的区别实例分析
Jul 28 #Python
You might like
【动漫杂谈】关于《请在T台上微笑》
2020/03/03 日漫
php pack与unpack 摸板字符字符含义
2009/10/29 PHP
PHP递归算法的详细示例分析
2013/02/19 PHP
解析如何用php screw加密php源代码
2013/06/20 PHP
ThinkPHP入口文件设置及相关注意事项分析
2014/12/05 PHP
PHP的文件操作与算法实现的面试题示例
2015/08/10 PHP
docker-compose部署php项目实例详解
2019/07/30 PHP
jquery ajax提交表单数据的两种实现方法
2010/04/29 Javascript
javascript学习笔记(十三) js闭包介绍(转)
2012/06/20 Javascript
js网页实时倒计时精确到秒级
2014/02/10 Javascript
使用jQuery动态加载js脚本文件的方法
2014/04/03 Javascript
简单谈谈jQuery(function(){})与(function(){})(jQuery)
2014/12/19 Javascript
jQuery选择器源码解读(六):Sizzle选择器匹配逻辑分析
2015/03/31 Javascript
js编写的treeview使用方法
2016/11/11 Javascript
JavaScript数据结构之广义表的定义与表示方法详解
2017/04/12 Javascript
Vue路由切换时的左滑和右滑效果示例
2018/05/29 Javascript
JavaScript函数IIFE使用详解
2019/10/21 Javascript
javascript 原型与原型链的理解及实例分析
2019/11/23 Javascript
JavaScript实现烟花绽放动画效果
2020/08/04 Javascript
Django 大文件下载实现过程解析
2019/08/01 Python
基于pytorch的保存和加载模型参数的方法
2019/08/17 Python
布隆过滤器的概述及Python实现方法
2019/12/08 Python
Windows下Pycharm远程连接虚拟机中Centos下的Python环境(图文教程详解)
2020/03/19 Python
谈谈对css属性box-sizing的了解
2017/01/04 HTML / CSS
HTML5印章绘制电子签章图片(中文英文椭圆章、中文英文椭圆印章)
2019/06/03 HTML / CSS
赫里福德的一家乡村零售商店:Philip Morris & Son
2017/06/25 全球购物
英国的屈臣氏:Boots博姿
2017/12/23 全球购物
会计学财务管理专业个人的自我评价
2013/10/19 职场文书
酒店实习个人鉴定
2013/12/07 职场文书
大学生自荐书范文
2013/12/10 职场文书
基层干部十八大感言
2014/01/19 职场文书
服务行业口号
2014/06/11 职场文书
员工辞职信范文
2015/03/02 职场文书
求职信格式范文
2015/03/19 职场文书
关于应聘教师的自荐信
2016/01/28 职场文书
创业计划书之面包店
2019/09/12 职场文书