中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2022-04-06 11:15:01 來源:億速云 閱讀:145 作者:iii 欄目:開發技術

這篇文章主要介紹“Java怎么獲取Word中所有的插入和刪除修訂”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“Java怎么獲取Word中所有的插入和刪除修訂”文章能幫助大家解決問題。

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

    引入Jar

    方法1

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

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

    方法2

    通過Maven倉庫下載。如下配置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>

    獲取插入、刪除的修訂

    • 創建一個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<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();
    
    //獲取插入的段落文本內容
    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;
    
    //確定文本范圍是否為刪除修訂,并獲取刪除修訂的類型、作者及刪除的文本內容。
    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中所有的插入和刪除修訂

    關于“Java怎么獲取Word中所有的插入和刪除修訂”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    永川市| 荆州市| 勃利县| 新津县| 江津市| 石台县| 礼泉县| 金寨县| 庄浪县| 韶山市| 北票市| 瑞金市| 乐平市| 涿州市| 明星| 桐梓县| 海阳市| 安福县| 巴彦淖尔市| 吉安县| 阿巴嘎旗| 镇赉县| 栾城县| 健康| 额济纳旗| 江门市| 普宁市| 天水市| 九寨沟县| 克什克腾旗| 永登县| 合肥市| 马龙县| 顺义区| 库车县| 墨玉县| 新竹市| 和田县| 安庆市| 保靖县| 刚察县|