将段落复制到同一文档中(Python3.x,docx)

将段落复制到同一文档中(Python3.x,docx),python,docx,python-docx,Python,Docx,Python Docx,比如说,我的docx文档中有一个特定的段落具有特定的文本格式,例如: “Foo酒吧” 我想制作一个类似于此段落模板的东西,将其多次复制到同一文档中。 复制示例中的文本意味着丢失文本格式。 from docx import Document document = Document('input.docx') template = document.paragraphs[0] for x in range(100): document.add_paragraph(template.text

比如说,我的docx文档中有一个特定的段落具有特定的文本格式,例如:
“Foo酒吧
我想制作一个类似于此段落模板的东西,将其多次复制到同一文档中。
复制示例中的文本意味着丢失文本格式。

from docx import Document document = Document('input.docx') template = document.paragraphs[0] for x in range(100): document.add_paragraph(template.text) document.save('output.docx') 从docx导入文档 文档=文档('input.docx') 模板=文件。段落[0] 对于范围(100)内的x: 文件.添加段落(模板.文本) document.save('output.docx') 有没有任何通用的方法可以使用python docx库来实现这一点
我们还特别感谢python和django的其他解决方案

提前感谢。

在您的简单示例中,您可以执行以下操作:

def clone_run_props(tmpl_run, this_run):
    this_run.bold = tmpl_run.bold
    ... maybe other possible run properties ...

template_paragraph = ... however you get this ...
new_paragraph = document.add_paragraph()
for run in template_paragraph:
    cloned_run = new_paragraph.add_run()
    clone_run_props(run, cloned_run)
    cloned_run.text = ... however you get this ...

这种方法在直接应用字符格式时有效,但在间接应用(例如通过字符样式)时无效。

您的问题过于抽象,无法给出有用的答案。通常,您需要进入下一个级别(在段落中运行),因为这是字符格式设置的地方。如果你能让你的目标更具体一点,可能会有更好的答案。我将在下面对这些限制条款进行分析。我正在寻找一种更通用的解决方案,比如当用户上传一个docx模板(我甚至不需要知道它是什么模板)并因此收到一个包含一定数量的模板的文档,这些模板中填充了来自数据库的不同信息(如姓名等)。填写一个文档效果很好,速度也很快,但我正在寻找queryset的解决方案:)谢谢您的回复!我需要看一个例子。有很多细节您没有提到,比如您如何知道在哪里放置什么以及“模板”文档需要遵守哪些限制。如果您正在寻找通用的文档模板,比如在文本中放入替换字符串,如
{{name}}
,然后进行替换,那么您所讨论的是另一个问题(而且相当具有挑战性)。你可以通过搜索“PythonDocx模板替换”找到更多关于这方面的信息。这正是我要说的,谢谢你的建议-我会努力寻找它。但到目前为止,问题不在于替换,正则表达式对于简单的替换非常有用,我只是无法将查询集中多个对象的内容相乘。