欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java?獲取Word中所有的插入和刪除修訂的方法

 更新時(shí)間:2022年04月06日 10:26:13   作者:Tobemia  
這篇文章主要介紹了Java?獲取Word中所有插入和刪除修訂,在?Word?文檔中啟用跟蹤更改功能后,會(huì)記錄文檔中的所有編輯行為,例如插入、刪除、替換和格式更改。對(duì)插入或刪除的內(nèi)容,本文介紹獲取方法,需要的朋友可以參考下

在 Word 文檔中啟用跟蹤更改功能后,會(huì)記錄文檔中的所有編輯行為,例如插入、刪除、替換和格式更改。對(duì)插入或刪除的內(nèi)容,可通過(guò)本文中介紹的方法來(lái)獲取。

??引入Jar??

??方法1??

手動(dòng)引入:將Free Spire.Doc for Java下載到本地,解壓,找到lib文件夾下的Spire.Doc.jar文件。在IDEA中打開如下界面,將本地路徑中的jar文件引入Java程序:?

Java 獲取Word中的所有插入和刪除修訂_java

??方法2??

通過(guò)Maven倉(cāng)庫(kù)下載。如下配置pom.xml:

<repositories>
<repository>
<id>com.e-iceblue</id>
<url>https://repo.e-iceblue.cn/repository/maven-public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.doc.free</artifactId>
<version>5.2.0</version>
</dependency>
</dependencies>

??獲取插入、刪除的修訂??

  • 創(chuàng)建一個(gè)?Document ?實(shí)例并使用?Document.loadFromFile() ?方法加載一個(gè)示例 Word 文檔。
  • 創(chuàng)建一個(gè)?StringBuilder? 對(duì)象,然后使用?StringBuilder.append() ?方法記錄據(jù)。
  • 遍歷所有?Section? 和 section 中 body 下的每一個(gè)元素。
  • 使用?Paragraph.isInsertRevision()? 方法確定段落是否為插入修訂。如果是,請(qǐng)使用?Paragraph.getInsertRevision()? 方法獲取插入修訂。然后使用?EditRevision.getType()? 方法和?EditRevision.getAuthor() ?方法獲取修訂類型、作者。
  • 使用?Paragraph.inDeleteRevision()? 方法確定段落是否為刪除修訂。如果是,請(qǐng)使用?Paragraph.getDeleteRevision()? 方法獲取刪除修訂。然后使用?EditRevision.getType()? 方法和?EditRevision.getAuthor()? 方法獲取修訂類型、作者。
  • 遍歷段落中的所有元素以獲取文本范圍的修訂。
  • 使用?FileWriter.write()? 方法將StringBuilder 的內(nèi)容寫入 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");

//創(chuàng)建一個(gè) StringBuilder 對(duì)象以獲取插入修訂
StringBuilder insertRevision = new StringBuilder();
insertRevision.append("INSERT REVISIONS:"+"\n");
int index_insertRevision = 0;

//創(chuàng)建一個(gè) StringBuilder 對(duì)象以獲取刪除修訂
StringBuilder deleteRevision = new StringBuilder();
deleteRevision.append("DELETE REVISIONS:"+"\n");
int index_deleteRevision = 0;

//遍歷所有節(jié)
for (Section sec : (Iterable<Section>) document.getSections())
{
//遍歷section中body下的元素
for(DocumentObject docItem : (Iterable<DocumentObject>)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();

//獲取插入的段落文本內(nèi)容
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<DocumentObject>)para.getChildObjects())
{
if (obj instanceof TextRange)
{
TextRange textRange = (TextRange)obj;

//確定文本范圍是否為刪除修訂,并獲取刪除修訂的類型、作者及刪除的文本內(nèi)容。
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");
}

//確定文本范圍是否為插入修訂,并獲取插入修訂的類型、作者及文本內(nèi)容。
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);
}
}
}
}
}
}
//保存插入修訂內(nèi)容為txt 文件
FileWriter writer1 = new FileWriter("insertRevisions.txt");
writer1.write(insertRevision.toString());
writer1.flush();
writer1.close();

//保存刪除修訂內(nèi)容為txt 文件
FileWriter writer2 = new FileWriter("deleteRevisions.txt");
writer2.write(deleteRevision.toString());
writer2.flush();
writer2.close();
}
}

獲取結(jié)果:

Java 獲取Word中的所有插入和刪除修訂_Word_02

到此這篇關(guān)于Java 獲取Word中所有的插入和刪除修訂的方法的文章就介紹到這了,更多相關(guān)獲取Word插入和刪除修訂內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java基礎(chǔ)-封裝和繼承

    Java基礎(chǔ)-封裝和繼承

    這篇文章主要介紹了Java面向?qū)ο缶幊蹋ǚ庋b/繼承/多態(tài))實(shí)例解析的相關(guān)內(nèi)容,具有一定參考價(jià)值,需要的朋友可以了解下希望可以幫助到你
    2021-07-07
  • ScrollView中嵌入ListView只顯示一條的解決辦法

    ScrollView中嵌入ListView只顯示一條的解決辦法

    在ScrollView添加一個(gè)ListView會(huì)導(dǎo)致listview控件顯示不全,通常只會(huì)顯示一條,究竟是什么原因呢?下面腳本之家小編給大家介紹ScrollView中嵌入ListView只顯示一條的解決辦法,感興趣的朋友一起學(xué)習(xí)吧
    2016-05-05
  • springcloud?feign服務(wù)之間調(diào)用,date類型轉(zhuǎn)換錯(cuò)誤的問(wèn)題

    springcloud?feign服務(wù)之間調(diào)用,date類型轉(zhuǎn)換錯(cuò)誤的問(wèn)題

    這篇文章主要介紹了springcloud?feign服務(wù)之間調(diào)用,date類型轉(zhuǎn)換錯(cuò)誤的問(wèn)題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • resubmit漸進(jìn)式防重復(fù)提交框架示例

    resubmit漸進(jìn)式防重復(fù)提交框架示例

    這篇文章主要為大家介紹了resubmit漸進(jìn)式防重復(fù)提交框架示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • IntelliJ IDEA修改編碼的方法步驟

    IntelliJ IDEA修改編碼的方法步驟

    這篇文章主要介紹了IntelliJ IDEA修改編碼的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • java雙重檢查鎖定的實(shí)現(xiàn)代碼

    java雙重檢查鎖定的實(shí)現(xiàn)代碼

    這篇文章主要介紹了java雙重檢查鎖定的實(shí)現(xiàn)方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-06-06
  • Java getRealPath(

    Java getRealPath("/")與getContextPath()區(qū)別詳細(xì)分析

    這篇文章主要介紹了Java getRealPath("/")與getContextPath()區(qū)別詳細(xì)分析,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • 最全LocalDateTime、LocalDate、Date、String相互轉(zhuǎn)化的方法

    最全LocalDateTime、LocalDate、Date、String相互轉(zhuǎn)化的方法

    大家在開發(fā)過(guò)程中必不可少的和日期打交道,對(duì)接別的系統(tǒng)時(shí),時(shí)間日期格式不一致,每次都要轉(zhuǎn)化,本文為大家準(zhǔn)備了最全的LocalDateTime、LocalDate、Date、String相互轉(zhuǎn)化方法,需要的可以參考一下
    2023-06-06
  • Mybatis Generator自動(dòng)生成對(duì)應(yīng)文件的實(shí)現(xiàn)方法

    Mybatis Generator自動(dòng)生成對(duì)應(yīng)文件的實(shí)現(xiàn)方法

    這篇文章主要介紹了Mybatis Generator自動(dòng)生成對(duì)應(yīng)的文件的實(shí)現(xiàn)方法,需要的朋友可以參考下
    2017-09-09
  • SpringBoot2 整合FreeMarker實(shí)現(xiàn)頁(yè)面靜態(tài)化示例詳解

    SpringBoot2 整合FreeMarker實(shí)現(xiàn)頁(yè)面靜態(tài)化示例詳解

    這篇文章主要介紹了SpringBoot2 整合FreeMarker實(shí)現(xiàn)頁(yè)面靜態(tài)化示例詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07

最新評(píng)論