千家信息网

Java怎么获取Word中所有的插入和删除修订

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章主要介绍"Java怎么获取Word中所有的插入和删除修订"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"Java怎么获取Word中所有的插入和删除修订"
千家信息网最后更新 2026年11月03日Java怎么获取Word中所有的插入和删除修订

这篇文章主要介绍"Java怎么获取Word中所有的插入和删除修订"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"Java怎么获取Word中所有的插入和删除修订"文章能帮助大家解决问题。

    在 Word 文档中启用跟踪更改功能后,会记录文档中的所有编辑行为,例如插入、删除、替换和格式更改。对插入或删除的内容,可通过本文中介绍的方法来获取。

    引入Jar

    方法1

    手动引入:将Free Spire.Doc for Java下载到本地,解压,找到lib文件夹下的Spire.Doc.jar文件。在IDEA中打开如下界面,将本地路径中的jar文件引入Java程序:

    方法2

    通过Maven仓库下载。如下配置pom.xml:

    com.e-icebluehttps://repo.e-iceblue.cn/repository/maven-public/e-icebluespire.doc.free5.2.0

    获取插入、删除的修订

    • 创建一个Document 实例并使用Document.loadFromFile() 方法加载一个示例 Word 文档。

    • 创建一个StringBuilder 对象,然后使用StringBuilder.append() 方法记录据。

    • 遍历所有Section 和 section 中 body 下的每一个元素。

    • 使用Paragraph.isInsertRevision() 方法确定段落是否为插入修订。如果是,请使用Paragraph.getInsertRevision() 方法获取插入修订。然后使用EditRevision.getType() 方法和EditRevision.getAuthor() 方法获取修订类型、作者。

    • 使用Paragraph.inDeleteRevision() 方法确定段落是否为删除修订。如果是,请使用Paragraph.getDeleteRevision() 方法获取删除修订。然后使用EditRevision.getType() 方法和EditRevision.getAuthor() 方法获取修订类型、作者。

    • 遍历段落中的所有元素以获取文本范围的修订。

    • 使用FileWriter.write() 方法将StringBuilder 的内容写入 txt 文档。

    Java

    import com.spire.doc.*;import com.spire.doc.documents.Paragraph;import com.spire.doc.fields.TextRange;import com.spire.doc.formatting.revisions.EditRevision;import com.spire.doc.formatting.revisions.EditRevisionType;import java.io.FileWriter;public class GetAllRevisions {public static void main(String[] args)throws Exception {//加载示例 Word 文档Document document = new Document();document.loadFromFile("test.docx");//创建一个 StringBuilder 对象以获取插入修订StringBuilder insertRevision = new StringBuilder();insertRevision.append("INSERT REVISIONS:"+"\n");int index_insertRevision = 0;//创建一个 StringBuilder 对象以获取删除修订StringBuilder deleteRevision = new StringBuilder();deleteRevision.append("DELETE REVISIONS:"+"\n");int index_deleteRevision = 0;//遍历所有节for (Section sec : (Iterable
    ) document.getSections()){//遍历section中body下的元素for(DocumentObject docItem : (Iterable)sec.getBody().getChildObjects()){if (docItem instanceof Paragraph){Paragraph para = (Paragraph)docItem;//确定段落是否为插入修订if (para.isInsertRevision()){index_insertRevision++;insertRevision.append("Index: " + index_insertRevision + " \n");//获取插入修订EditRevision insRevison = para.getInsertRevision();//获取插入的段落文本内容String insertRevisionString = para.getText();//获取插入修订类型EditRevisionType insType = insRevison.getType();insertRevision.append("Type: " + insType + " \n");//获取插入修订作者String insAuthor = insRevison.getAuthor();insertRevision.append("Author: " + insAuthor + " \n" + "InsertPara:"+ insertRevisionString );}//确定段落是否为删除修订if (para.isDeleteRevision()){index_deleteRevision++;deleteRevision.append("Index: " + index_deleteRevision + " \n");EditRevision delRevison = para.getDeleteRevision();EditRevisionType delType = delRevison.getType();deleteRevision.append("Type: " + delType + " \n");String delAuthor = delRevison.getAuthor();deleteRevision.append("Author: " + delAuthor + " \n");}//遍历段落中的元素for(DocumentObject obj : (Iterable)para.getChildObjects()){if (obj instanceof TextRange){TextRange textRange = (TextRange)obj;//确定文本范围是否为删除修订,并获取删除修订的类型、作者及删除的文本内容。if (textRange.isDeleteRevision()){index_deleteRevision++;deleteRevision.append("Index: " + index_deleteRevision +" \n");EditRevision delRevison = textRange.getDeleteRevision();EditRevisionType delType = delRevison.getType();deleteRevision.append("Type: " + delType+ " \n");String delAuthor = delRevison.getAuthor();deleteRevision.append("Author: " + delAuthor + " \n");String deletetext = textRange.getText();deleteRevision.append("Delete text:" + deletetext +" \n");}//确定文本范围是否为插入修订,并获取插入修订的类型、作者及文本内容。else if (textRange.isInsertRevision()){index_insertRevision++;insertRevision.append("Index: " + index_insertRevision +" \n");EditRevision insRevison = textRange.getInsertRevision();EditRevisionType insType = insRevison.getType();insertRevision.append("Type: " + insType + " \n");String insAuthor = insRevison.getAuthor();insertRevision.append("Author: " + insAuthor + " \n");String insertText = textRange.getText();insertRevision.append("insertText:"+insertText);}}}}}}//保存插入修订内容为txt 文件FileWriter writer1 = new FileWriter("insertRevisions.txt");writer1.write(insertRevision.toString());writer1.flush();writer1.close();//保存删除修订内容为txt 文件FileWriter writer2 = new FileWriter("deleteRevisions.txt");writer2.write(deleteRevision.toString());writer2.flush();writer2.close();}}

    获取结果:

    关于"Java怎么获取Word中所有的插入和删除修订"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。

    方法 内容 段落 文本 作者 文件 文档 类型 元素 对象 知识 范围 示例 行业 不同 实用 仓库 功能 实例 实用性 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 新华互联网科技学校 科技金融是不是互联网金融 金诺互联网科技 高科技与互联网 奇酷互联网络科技公司 互联网科技网站 科技伦理 互联网公司 联恩商钥互联网科技有限公司 互联网科技博主是什么意思 银川新华互联网科技职业技术培训学校图片 现代互联网科技股 智腾互联网科技有限公司 未来五年的互联网科技 互联网科技和信息 互联网新科技动漫ppt素材 保险科技服务互联网营销体系 山东子淼互联网科技有限公司 每天都有哪些好的互联网科技 半导体是互联网高科技吗 玉溪新华互联网科技怎么选 朗新科技与工业互联网 互联网科技作文 华中科技大学互联网 湖南洣水互联网科技有限公司扣款 苏州铭阳互联网科技有限公司 佛山市翊博互联网络科技有限公司 扫呗互联网科技有限公司 版纳互联网科技选哪家 悟空问答互联网科技 科技美学互联网 艺术
    0