Python3操作Office之Word模板技术

在平时工作当中,经常会遇到大部分文字固定不变,小部分内容修改的相关文档。如放假通知、工作日志、工作周报、合同等。

以往都要打开,修改,保存,犹如机械一般的操作,如内容少还可勉强接受,倘若内容多时,反复浏览,未免有些头晕目眩。

不过,现在好了,有很多工具可以实现:无需打开文档,只需在软件界面,输入要变更的内容便可,这就要用到所谓的模板技术了。

1

在Python编程语言当中,操作Word模板,需要用到python-docx-template开发包。废话不多说,打开命令行窗口,输入:pip install docxtpl命令,下载开发包。

2

有了开发包,咱就可以做下模板内容修改的试验了。首先创建一个模板文件:leave_temp.docx并把:“{% who %}的请假申请单“这个内容拷贝到Word文档里。 接下来,咱就编写代码测试一下。

from docxtpl import DocxTemplate

tpl = DocxTemplate('leave_temp.docx')

# 需要替换内容以key:value的方式进行更换

context = {

'who': '程旭阳'

}

tpl.render(context)

tpl.save('leave.docx')

3

除了基本的内容替换之外,python-docx-template开发包还可对指定的内容特色处理,如更改文本的字体和颜色,如给表格单元格加背景色或合并单元格,还有就是图片内容的替换,再者就是可以把另一个Word文档里面提取出来并插入到本文档当中。

核心的功能大概就这么多了。咱再试下文本颜色和表格单元格背景的调整。在编写代码之前,我提供一个模板(leave_temp.docx)供你参考,拿走不谢。

4

自从有了模板,腰不痛,手也不酸了,编写代码也有了依据,妥妥的。来了,上代码。

from docxtpl import DocxTemplate, RichText

tpl = DocxTemplate('leave_temp.docx')

# 需要替换内容以key:value的方式进行更换

context = {

'year': '2019', 'month': '3', 'day': '8',

'name': '程旭阳', 'department': '研发部',

'reason': '女朋友说我好久没陪她了,再不陪伴,她就要跟我说拜拜了。为爱走天涯,特请假4天!',

'date': '2019-3-9至2019-3-12',

'num': RichText('4天', color='000000', bold=True), 'bg': 'FF0000'

}

tpl.render(context)

tpl.save('leave.docx')

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190423A074L000?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券