天天看點

Java 合并Word文檔

合并文檔可以是将兩個包含一定邏輯關系的文檔合并成一個完整的文檔,也可以是出于友善文檔存儲、管理的目的合并多個文檔為一個文檔。下面,就将以上文檔操作需求,通過Java程式來實作Word文檔合并。合并文檔可以分為2種方法來進行:

方法1. 加載兩個文檔,将文檔2插入到文檔1。使用該方法合并文檔時,被合并文檔的内容預設從新的一頁開始顯示。

方法2. 擷取文檔1的最後一個section,然後将文檔2中的段落作為新的段落添加到section。新加入的文檔承接上一個文檔的最後一個段落末尾開始顯示。

使用工具:Free Spire.Doc for Java (免費版)

Jar檔案擷取及導入:

擷取方法1:通過下載下傳jar檔案包。解壓檔案後,将lib檔案夾下的Spire.Doc.jar檔案導入程式。參考如下導入效果:

Java 合并Word文檔
擷取方法2:通過maven導入,可參考導入方法。

【示例1】新起一頁合并Word文檔

import com.spire.doc.*;

public class Merge1 {
    public static void main(String[] args) {
        //加載文檔1
        Document doc1 = new Document("test1.docx");

        //調用方法将文檔2插入到文檔1
        doc1.insertTextFromFile("test2.doc",FileFormat.Docx_2010);

        //儲存合并後的文檔
        doc1.saveToFile("Merged1.docx",FileFormat.Docx_2010);
    }
}      

合并效果:

Java 合并Word文檔

【示例2】承接上文段落合并Word文檔

import  com.spire.doc.*;

public class Merge2 {
    public static void main(String[] args){
        //加載需要合并的兩個文檔
        Document doc1 = new Document("test1.docx");
        Document doc2 = new Document("test2.doc");

        //擷取文檔1的最後一節
        Section lastsec = doc1.getLastSection();

        //周遊文檔2的所有段落内容,添加到文檔1
        for (Section section:(Iterable <Section>)doc2.getSections()) {
            for (DocumentObject obj:(Iterable <DocumentObject>)section.getBody().getChildObjects()
            ) {
                lastsec.getBody().getChildObjects().add(obj.deepClone());
            }
        }

        //儲存合并後的文檔
        doc1.saveToFile("Merged2.docx",FileFormat.Docx_2010);
    }
}      
Java 合并Word文檔