python处理word_Python3操作Office之Word模板技术

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

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

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

1

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

a50f4bfbfbedab649d70bd282d3718c778311eda.jpeg?token=c2f75c456b2b28c2a202f729a26a6487&s=0DE27A225BFCB6C84879F80B0000A0C2

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')

9825bc315c6034a82fcb170e1112fe500923761e.jpeg?token=813025fc6b56b8164e3416aa3ce9bd35&s=9D20743230E84D0D1AF5F0CB0200E0B3

3

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

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

7dd98d1001e939018b88f966a1ede3e337d196e2.jpeg?token=25490fe370b07871e1498efb8dcc522e&s=5AA83862130A41490855B4DB0000E0B1

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')

500fd9f9d72a6059578b9913f235839f033bba22.jpeg?token=5e79a496dcaee178e2968ed40ebee6ec&s=5EAE3462199E45C806C145D1000070B2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值