Java借助Spire.Doc for Java庫合并Word文檔
在 Java 開發(fā)項目中,經(jīng)常需要將多個 Word 文檔合并成一個完整文件,例如生成報告、合同匯總或文檔歸檔。傳統(tǒng)方式需要手動復(fù)制粘貼,不僅費時還容易出錯。通過 Spire.Doc for Java 庫,我們可以輕松實現(xiàn)這一操作。它提供了直觀的 API,支持兩種常用合并方式:一種會在新頁面插入完整文檔,另一種則連續(xù)追加內(nèi)容而不換頁。
前提準備
首先在項目中引入 Spire.Doc for Java 依賴(推薦使用 Maven):
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>https://repo.e-iceblue.com/nexus/content/groups/public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.doc</artifactId>
<version>14.3.1</version>
</dependency>
</dependencies>下載 JAR 包后添加到 classpath 即可。代碼中主要使用 com.spire.doc.* 包。
方法一:整文檔插入(新頁面開始)
適合需要清晰分頁的場景。Spire.Doc 的 insertTextFromFile() 方法可直接將整個文檔插入。
import com.spire.doc.*;
public class MergeByInsert {
public static void main(String[] args) {
// 加載主文檔
Document document = new Document("input/Sample1.docx");
// 依次插入其他文檔(從新頁面開始)
document.insertTextFromFile("input/Sample2.docx", FileFormat.Docx_2013);
document.insertTextFromFile("input/Sample3.docx", FileFormat.Docx_2013);
// 保存合并結(jié)果
document.saveToFile("output/Merged.docx", FileFormat.Docx_2013);
}
}
方法二:內(nèi)容克隆追加(連續(xù)流式合并)
如果不想強制分頁,可以克隆第二個文檔的所有內(nèi)容追加到第一個文檔的末尾。適合保持統(tǒng)一格式的場景。
import com.spire.doc.*;
public class MergeByClone {
public static void main(String[] args) {
// 加載第一個文檔作為基礎(chǔ)
Document mainDoc = new Document("input/Sample1.docx");
// 支持合并多個文檔
String[] files = {"input/Sample2.docx", "input/Sample3.docx"};
for (String file : files) {
Document tempDoc = new Document(file);
for (Object secObj : (Iterable) tempDoc.getSections()) {
Section sec = (Section) secObj;
for (Object obj : (Iterable) sec.getBody().getChildObjects()) {
DocumentObject item = (DocumentObject) obj;
// 追加到主文檔最后一段
mainDoc.getLastSection().getBody().getChildObjects().add(item.deepClone());
}
}
}
mainDoc.saveToFile("output/Merged.docx", FileFormat.Docx_2013);
}
}
實用提示
- 錯誤處理:建議在加載文檔前添加
try-catch捕獲Exception,并檢查文件路徑是否存在。 - 格式保留:兩種方法均能較好保留原樣式、表格、圖片。如果需要更精細控制,可先獲取
Paragraph或Table對象再追加。 - 批量合并:將文件路徑放入列表或文件夾掃描,實現(xiàn)自動化處理。
- 性能:對于大文件,推薦分批處理或使用臨時許可證移除評估水印。
通過以上代碼,你可以在幾分鐘內(nèi)完成合并功能,極大提升開發(fā)效率。實際項目中可封裝成工具類,復(fù)用更方便。
到此這篇關(guān)于Java借助Spire.Doc for Java庫合并Word文檔的文章就介紹到這了,更多相關(guān)Java合并Word文檔內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java實現(xiàn)二維碼QRCode的編碼和解碼與示例解析
本文主要介紹Java實現(xiàn)二維碼QRCode的編碼和解碼,這里給大家一個小示例以便理解,有需要的小伙伴可以參考下2016-08-08
Spring?security?oauth2以redis作為tokenstore及jackson序列化失敗問題
這篇文章主要介紹了Spring?security?oauth2以redis作為tokenstore及jackson序列化失敗問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教<BR>2024-04-04
spring為類的靜態(tài)屬性實現(xiàn)注入實例方法
在本篇文章里小編給大家整理的是關(guān)于spring為類的靜態(tài)屬性實現(xiàn)注入實例方法,有需要的朋友們可以參考下。2019-10-10
SpringMVC+Spring+Mybatis實現(xiàn)支付寶支付功能的示例代碼
這篇文章主要介紹了SpringMVC+Spring+Mybatis實現(xiàn)支付寶支付功能的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05
java.imageIo給圖片添加水印的實現(xiàn)代碼
最近項目在做一個商城項目, 項目上的圖片要添加水?、?添加圖片水印;②:添加文字水印;一下提供下個方法,希望大家可以用得著2013-07-07
java sftp下載文件報錯Caused by:com.jcraft.jsch.JSchExcep
文章講述了作者在日常工作中遇到的JSch連接問題,經(jīng)過分析發(fā)現(xiàn)是由于連接泄露導(dǎo)致的,作者提出了解決方案,并給出了使用建議:1.在finally代碼塊中關(guān)閉連接;2.在真正使用階段再創(chuàng)建連接,避免創(chuàng)建后不使用又忘記關(guān)閉連接2024-11-11
MyBatisPlus mybatis-plus-join使用及說明
本文介紹了MyBatisPlus的基本使用、集成SpringBoot的方法、代碼生成器等核心功能,以及@TableName、@TableField等注解的使用方法,并詳細說明了批量插入、Join查詢、StopWatch計時和Hutool工具的使用2026-04-04

