https://docxtpl.readthedocs.io/en/latest/
python-docx-template包之----为文字自定义格式(一)
python-docx-template包之----设置表格(二)
python-docx-template包之----疑难杂症(三)
代码操作Word时,自动更新目录(一)
python操作Word时,自动更新目录(二)
python-docx--设置表格进阶
1. word模板新建样式
2. 程序指定样式
pip install docxtpl
docxtpl会使用2个包
可以利用jinja2制作Word模板,并动态向模板中插入文字、图片、表格等内容。具体用法可查阅官方文档,这里详细介绍下如何为文字自定义样式。
{{ }} 这种标签会使var代表的文字格式为当前字符样式
{{r }} 如果使用richtext样式,则会在当前docx模板中删掉当前字符样式,此时如果没有指定richtext样式,则会使用Word默认样式,以下方法可以指定richtext样式。方法二可以设置文字大小、颜色、粗体、斜体。但最好使用方法一新建样式。
richtext,简写R或r,可以认为是行,这种类型新建样式的时候,样式类型是---字符,可以设置字体、颜色、大小、斜体加粗等,方法如下文。
paragraph,模板里写p,可以认为是段落,段落也有许多样式可以设置,比如缩进、对齐之类,本文并不适用,可以看我专栏里的另外一个博客 设置段落样式(缩进/对齐/间距)
1. word模板中新建样式
2. 为自定义样式命名为: myrichtextstyle,需要注意的是样式基准必须为:a默认段落字体(即Character style), 可以为样式设置其他格式,比如字体大小、颜色行间距等
3. 在模板中将需要自定义格式的文字设置为richtext, 例如:
{{r example}}
4. 在程序中,(以下为官方示例的richtext.py)
from docxtpl import DocxTemplate, RichText
tpl=DocxTemplate('test_files/richtext_tpl.docx')
rt = RichText('an exemple of ')
rt.add('a rich text', style='myrichtextstyle')
rt.add('some violet', color='#ff00ff')
context = {
'example' : rt,
}
tpl.render(context)
tpl.save('test_files/richtext.docx')
方法:
from docxtpl import DocxTemplate, RichText
tpl=DocxTemplate('test_files/richtext_tpl.docx')
rt = RichText('an exemple of ')
rt.add(' with ')
rt.add('some italic', italic=True) #斜体
rt.add(' and ')
rt.add('some violet', color='#ff00ff') #颜色
rt.add(' and ')
rt.add('some striked', strike=True) #删除线
rt.add(' and ')
rt.add('some small', size=14) #字体大小
rt.add(' or ')
rt.add('big', size=60)
rt.add(' text.')
rt.add(' Et voilà ! ')
rt.add('\n1st line')
rt.add('\n2nd line') #换行
rt.add('\n3rd line')
rt.add('\n\n')
context = {
'example' : rt,
}
tpl.render(context)
tpl.save('test_files/richtext.docx')
结果:
1. 在设置文字颜色时,rt.add("some violet",color='#ff00ff')这种设置方法,WPS不兼容,因此按照上述自定义类型的方法来设置文字颜色比较好