标题:python docx是否可以实现1、删除某个一级标题下的内容,2、把一个word的内容 ...
只看楼主
bulingbuling
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2019-11-19
结帖率:0
已结贴  问题点数:20 回复次数:1 
python docx是否可以实现1、删除某个一级标题下的内容,2、把一个word的内容连同格式一起复制到另一个文档末尾。
我的文档有四个章节,我需要删除第四章(第四章里有很多段落和两个表格),然后把另外一个word文档(也是很多段落和两个表格)的内容全部拷贝到当前文档并保存。简单来说就是用文档B的内容去替换文档A的第四章。
尝试过的方法:1、使用replace按照段落替换,但是由于第四章和另一个word文档里的段落是不一样的,失败了,并且replace后格式丢失了。
2、使用clear清空第四章所有段落以及表格,然后使用add把另一个文档中的内容添加到末尾,也失败了,因为clear只能清除文字,不能清除段落前的项目符。
求问大神们如何能实现我的需求,折腾了蛮久只是发现一些不能使用的方法
两个文档见附件
月报测试.zip (123.4 KB)
搜索更多相关主题的帖子: 内容 文档 word 格式 删除 
2019-11-19 16:41
fall_bernana
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:17
帖 子:240
专家分:2086
注 册:2019-8-16
得分:20 
以下是引用bulingbuling在2019-11-19 16:41:34的发言:

我的文档有四个章节,我需要删除第四章(第四章里有很多段落和两个表格),然后把另外一个word文档(也是很多段落和两个表格)的内容全部拷贝到当前文档并保存。简单来说就是用文档B的内容去替换文档A的第四章。
尝试过的方法:1、使用replace按照段落替换,但是由于第四章和另一个word文档里的段落是不一样的,失败了,并且replace后格式丢失了。
2、使用clear清空第四章所有段落以及表格,然后使用add把另一个文档中的内容添加到末尾,也失败了,因为clear只能清除文字,不能清除段落前的项目符。
求问大神们如何能实现我的需求,折腾了蛮久只是发现一些不能使用的方法
两个文档见附件


尝试了下,也没有找到比较好的办法把新的word原样的粘贴到后面.但是可以大致复制原始的段落的格式.如果可以接受,我的建议是只复制内容,格式自己写.
程序代码:
doc_file = docx.Document(doc_path)
new_doc_file = docx.Document()
for paragraph in doc_file.paragraphs:
    p = new_doc_file.add_paragraph('',style=paragraph.style.name.replace(' (Web)',''))
    list_runs = copy.deepcopy(paragraph.runs)
    for run in list_runs:
        # 段落样式的复制
        p.add_run(run.text, run.style)
new_doc_file.save(new_doc_path)

这个基本的样子能复制,有些复制不过来的样式需要你根据style.name重新写.可以参考https://www.
2019-11-21 15:24



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-497933-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.221224 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved