docx中,实现删除段落功能?(已解决)
docx模块文档中的clear()只是清空本段落内容,没有删除段落。
from copy import deepcopy
from docx import Document
filename = r'C:\Users\Administrator\Desktop\python测试\编码区\表3.docx'
filename_模板 = r'C:\Users\Administrator\Desktop\python测试\编码区\准备模板\报告表模板.docx'
document = Document(filename)
document_模板 = Document(filename_模板)
table_模板建筑物总汇 = document_模板.tables[0]
new_table1 = deepcopy(table_模板建筑物总汇)
for a in document.paragraphs:
print(a.text)
print("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")
for j in range(len(document.paragraphs)):
if "jz1" in document.paragraphs[j].text:
paragraph = document.paragraphs[j]
new_paragraph = paragraph.insert_paragraph_before(text="建筑物1", style='Heading 3')#本段落前插入新段落
new_paragraph._p.addnext(new_table1._element)#在新的段落下插入复制的表格
document.paragraphs[j+1].clear()#重新计段落,删掉标识所在段落,保持总段落数不变
print(j,"段找到")
document.save(r'C:\Users\Administrator\Desktop\python测试\编码区\text.docx')
现在遍历所有段落,找到标识文本“jz1”,返回标识文本所在段落,并在这个段落前添加新段落,然后插入复制的表格。再将返回的标识符所在段落删除。(等效用新的段落含表格,替换掉标识符所在的段落)
这段有问题,删除不了段落,只是清空。
找了下资料
用这段能实现,不知还有别的方法嘛
p = document.paragraphs[j+1]._element
p.getparent().remove(p)
推荐文章: