【发布时间】:2014-12-12 19:01:56
【问题描述】:
我创建了一个包含文本的word文档
你好。你欠我 ${debt}。请尽快还给我。
Times New Roman 大小 12。文件名是 debtTemplate.docx。我想使用 python-docx 将 {debt} 替换为实际数字(1.20)。我尝试了以下代码:
from docx import Document
document = Document("debtTemplate.docx")
paragraphs = document.paragraphs
debt = "1.20"
paragraph = paragraphs[0]
text = paragraph.text
newText = text.format(debt=debt)
paragraph.clear()
paragraph.add_run(newText)
document.save("debt.docx")
这会生成一个包含所需文本的新文档,但 Calabri 字体大小为 11。我希望字体与原始字体相同:Times New Roman 大小为 12。
我知道您可以将样式变量添加到paragraph.add_run(),所以我尝试了,但没有任何效果。例如paragraph.add_run(newText,style="Strong") 甚至没有改变任何东西。
有人知道我能做什么吗?
编辑:这是我的代码的修改版本,我希望它可以工作,但没有。
from docx import Document
document = Document("debtTemplate.docx")
document.save("debt.docx")
paragraphs = document.paragraphs
debt = "1.20"
paragraph = paragraphs[0]
style = paragraph.style
text = paragraph.text
newText = text.format(debt=debt)
paragraph.clear()
paragraph.add_run(newText,style)
document.save("debt.docx")
【问题讨论】:
-
有点晚了...你想把所有东西都做成 Times New Roman 和 12 号吗?
标签: python docx python-docx