如何在Python中向现有doc/docx文件添加新数据
我刚开始学习Python,想用Python往一个已经存在的docx文件里添加新数据。
from docx import Document # for Word document
document = Document()
document.add_paragraph('My first paragraph')
document.add_paragraph("Second paragraph")
document.add_paragraph("Third paragraph")
document.add_paragraph("fourth paragraph")
document.add_paragraph("fifth paragraph")
document.save("testDocmod.docx")
document = Document('testDocmod.docx')
paragraphs = document.paragraphs
incr=1
for paragraph in paragraphs:
runs = paragraph.runs
for run in runs:
if(incr == 2):
run.text = 'Updatd text'
print run.text
incr = incr + 1
但是它只是在更新第二个元素,而我其实是想在第二个元素之前添加内容。
1 个回答
1
根据你想要的结果,你可以选择以下两种方法:
1) 删除第二段的所有内容,然后重新创建它:
from docx import Document
document = Document('testDocmod.docx')
paragraphs = document.paragraphs
#Store content of second paragraph
text = paragraphs[1].text
#Clear content
paragraphs[1]._p.clear()
#Recreate second paragraph
paragraphs[1].add_run('Appended part ' + text)
document.save("testDocmod.docx")
结果:
My first paragraph
Appended part Second paragraph
Third paragraph
fourth paragraph
fifth paragraph
2) 直接在第一段添加文字:
from docx import Document
from docx.enum.text import WD_BREAK
document = Document('testDocmod.docx')
paragraphs = document.paragraphs
#Add break line after last run
paragraphs[0].runs[-1].add_break(WD_BREAK.LINE)
paragraphs[0].add_run('New text')
document.save("testDocmod.docx")
结果:
My first paragraph
New text
Second paragraph
Third paragraph
fourth paragraph
fifth paragraph