最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java借助Spire.Doc for Java庫合并Word文檔

 更新時間:2026年03月24日 11:42:42   作者:缺點內(nèi)向  
在 Java 開發(fā)項目中,經(jīng)常需要將多個 Word 文檔合并成一個完整文件,通過 Spire.Doc for Java 庫,我們可以輕松實現(xiàn)這一操作,下面小編就和大家詳細介紹一下吧

在 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,并檢查文件路徑是否存在。
  • 格式保留:兩種方法均能較好保留原樣式、表格、圖片。如果需要更精細控制,可先獲取 ParagraphTable 對象再追加。
  • 批量合并:將文件路徑放入列表或文件夾掃描,實現(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的編碼和解碼與示例解析

    本文主要介紹Java實現(xiàn)二維碼QRCode的編碼和解碼,這里給大家一個小示例以便理解,有需要的小伙伴可以參考下
    2016-08-08
  • SpringBoot?使用log4j2的配置過程

    SpringBoot?使用log4j2的配置過程

    這篇文章主要介紹了SpringBoot?使用log4j2的配置,springboot默認是用logback的日志框架的,所以要在pom中配置排除logback。這里需要注意的是,其實不止一處使用了logback,所以要在starter中統(tǒng)一排除,然后引入log4j2,需要的朋友可以參考下
    2022-09-09
  • mybatis-flex實現(xiàn)鏈式操作的示例代碼

    mybatis-flex實現(xiàn)鏈式操作的示例代碼

    MyBatis-Flex它提供了一種鏈式操作方式,本文主要介紹了mybatis-flex實現(xiàn)鏈式操作的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-06-06
  • Spring?security?oauth2以redis作為tokenstore及jackson序列化失敗問題

    Spring?security?oauth2以redis作為tokenstore及jackson序列化失敗問題

    這篇文章主要介紹了Spring?security?oauth2以redis作為tokenstore及jackson序列化失敗問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教<BR>
    2024-04-04
  • spring為類的靜態(tài)屬性實現(xiàn)注入實例方法

    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)支付寶支付功能的示例代碼

    這篇文章主要介紹了SpringMVC+Spring+Mybatis實現(xiàn)支付寶支付功能的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • java.imageIo給圖片添加水印的實現(xiàn)代碼

    java.imageIo給圖片添加水印的實現(xiàn)代碼

    最近項目在做一個商城項目, 項目上的圖片要添加水?、?添加圖片水印;②:添加文字水印;一下提供下個方法,希望大家可以用得著
    2013-07-07
  • springboot aop添加日志方式

    springboot aop添加日志方式

    這篇文章主要介紹了springboot aop添加日志方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • java sftp下載文件報錯Caused by:com.jcraft.jsch.JSchException:session is down問題

    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 mybatis-plus-join使用及說明

    本文介紹了MyBatisPlus的基本使用、集成SpringBoot的方法、代碼生成器等核心功能,以及@TableName、@TableField等注解的使用方法,并詳細說明了批量插入、Join查詢、StopWatch計時和Hutool工具的使用
    2026-04-04

最新評論

米泉市| 宁化县| 龙山县| 肃宁县| 大渡口区| 兴业县| 龙胜| 临安市| 佛坪县| 西城区| 南平市| 普定县| 越西县| 广河县| 九台市| 陆丰市| 白玉县| 敦煌市| 晴隆县| 苍溪县| 凭祥市| 土默特右旗| 昌黎县| 航空| 永平县| 噶尔县| 古丈县| 正阳县| 神农架林区| 安西县| 云梦县| 福海县| 望江县| 来安县| 三原县| 樟树市| 青浦区| 大英县| 页游| 武平县| 衡阳市|