合並文檔可以是將兩個包含一定邏輯關系的文檔合並成一個完整的文檔,也可以是出於方便文檔存儲、管理的目的合並多個文檔為一個文檔。下面,就將以上文檔操作需求,通過Java程序來實現Word文檔合並。合並文檔可以分為2種方法來進行:
方法1. 加載兩個文檔,將文檔2插入到文檔1。使用該方法合並文檔時,被合並文檔的內容默認從新的一頁開始顯示。
方法2. 獲取文檔1的最后一個section,然后將文檔2中的段落作為新的段落添加到section。新加入的文檔承接上一個文檔的最后一個段落末尾開始顯示。
使用工具:Free Spire.Doc for Java (免費版)
Jar文件獲取及導入:
獲取方法1:通過下載jar文件包。解壓文件后,將lib文件夾下的Spire.Doc.jar文件導入程序。參考如下導入效果:
獲取方法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); } }
合並效果:
【示例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); } }
合並效果: