如何在python-docx生成的新文档中复用已有docx文件的样式?
解决python-docx复用现有docx样式的问题
不用你说的那种逐个复制样式的方式,这么做不仅麻烦,还容易出问题——python-docx里的样式对象是和所属文档绑定的,直接赋值会导致样式不生效甚至抛出异常。
正确的做法是直接基于模板文档创建新文档,这样模板里的所有样式会自动被继承,你直接调用就行:
# 直接以模板文件为基础创建新文档,自带所有模板样式 doc = Document("MyTemplate.docx") # 直接使用模板里的样式添加内容 doc.add_heading("自定义标题", level=1) # 自动应用模板中的Heading 1样式 doc.add_paragraph("这是一段使用模板正文样式的文本", style="Body Text") # 保存新文档 doc.save("新文档.docx")
如果只需要模板的样式,但不想保留模板里的原有内容,可以打开模板后清空所有内容再操作:
doc = Document("MyTemplate.docx") # 清空模板里的所有段落和表格 for element in list(doc.element.body): doc.element.body.remove(element) # 现在可以在空文档里用模板样式添加内容了 doc.add_heading("全新文档的标题", level=1) doc.add_paragraph("全新的正文内容", style="Body Text") doc.save("空白模板样式文档.docx")
内容的提问来源于stack exchange,提问作者Not a machine
相关产品推荐
相关产品推荐

