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

Java借助Spire.Doc for Java庫(kù)合并Word文檔

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

在 Java 開發(fā)項(xiàng)目中,經(jīng)常需要將多個(gè) Word 文檔合并成一個(gè)完整文件,例如生成報(bào)告、合同匯總或文檔歸檔。傳統(tǒng)方式需要手動(dòng)復(fù)制粘貼,不僅費(fèi)時(shí)還容易出錯(cuò)。通過(guò) Spire.Doc for Java 庫(kù),我們可以輕松實(shí)現(xiàn)這一操作。它提供了直觀的 API,支持兩種常用合并方式:一種會(huì)在新頁(yè)面插入完整文檔,另一種則連續(xù)追加內(nèi)容而不換頁(yè)。

前提準(zhǔn)備

首先在項(xiàng)目中引入 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.* 包。

方法一:整文檔插入(新頁(yè)面開始)

適合需要清晰分頁(yè)的場(chǎng)景。Spire.Doc 的 insertTextFromFile() 方法可直接將整個(gè)文檔插入。

import com.spire.doc.*;

public class MergeByInsert {
    public static void main(String[] args) {
        // 加載主文檔
        Document document = new Document("input/Sample1.docx");
        
        // 依次插入其他文檔(從新頁(yè)面開始)
        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ù)流式合并)

如果不想強(qiáng)制分頁(yè),可以克隆第二個(gè)文檔的所有內(nèi)容追加到第一個(gè)文檔的末尾。適合保持統(tǒng)一格式的場(chǎng)景。

import com.spire.doc.*;

public class MergeByClone {
    public static void main(String[] args) {
        // 加載第一個(gè)文檔作為基礎(chǔ)
        Document mainDoc = new Document("input/Sample1.docx");
        
        // 支持合并多個(gè)文檔
        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);
    }
}

實(shí)用提示

  • 錯(cuò)誤處理:建議在加載文檔前添加 try-catch 捕獲 Exception,并檢查文件路徑是否存在。
  • 格式保留:兩種方法均能較好保留原樣式、表格、圖片。如果需要更精細(xì)控制,可先獲取 ParagraphTable 對(duì)象再追加。
  • 批量合并:將文件路徑放入列表或文件夾掃描,實(shí)現(xiàn)自動(dòng)化處理。
  • 性能:對(duì)于大文件,推薦分批處理或使用臨時(shí)許可證移除評(píng)估水印。

通過(guò)以上代碼,你可以在幾分鐘內(nèi)完成合并功能,極大提升開發(fā)效率。實(shí)際項(xiàng)目中可封裝成工具類,復(fù)用更方便。

到此這篇關(guān)于Java借助Spire.Doc for Java庫(kù)合并Word文檔的文章就介紹到這了,更多相關(guān)Java合并Word文檔內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java實(shí)現(xiàn)二維碼QRCode的編碼和解碼與示例解析

    Java實(shí)現(xiàn)二維碼QRCode的編碼和解碼與示例解析

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

    SpringBoot?使用log4j2的配置過(guò)程

    這篇文章主要介紹了SpringBoot?使用log4j2的配置,springboot默認(rèn)是用logback的日志框架的,所以要在pom中配置排除logback。這里需要注意的是,其實(shí)不止一處使用了logback,所以要在starter中統(tǒng)一排除,然后引入log4j2,需要的朋友可以參考下
    2022-09-09
  • mybatis-flex實(shí)現(xiàn)鏈?zhǔn)讲僮鞯氖纠a

    mybatis-flex實(shí)現(xiàn)鏈?zhǔn)讲僮鞯氖纠a

    MyBatis-Flex它提供了一種鏈?zhǔn)讲僮鞣绞?本文主要介紹了mybatis-flex實(shí)現(xiàn)鏈?zhǔn)讲僮鞯氖纠a,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-06-06
  • Spring?security?oauth2以redis作為tokenstore及jackson序列化失敗問(wèn)題

    Spring?security?oauth2以redis作為tokenstore及jackson序列化失敗問(wèn)題

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

    spring為類的靜態(tài)屬性實(shí)現(xiàn)注入實(shí)例方法

    在本篇文章里小編給大家整理的是關(guān)于spring為類的靜態(tài)屬性實(shí)現(xiàn)注入實(shí)例方法,有需要的朋友們可以參考下。
    2019-10-10
  • SpringMVC+Spring+Mybatis實(shí)現(xiàn)支付寶支付功能的示例代碼

    SpringMVC+Spring+Mybatis實(shí)現(xiàn)支付寶支付功能的示例代碼

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

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

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

    springboot aop添加日志方式

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

    java sftp下載文件報(bào)錯(cuò)Caused by:com.jcraft.jsch.JSchExcep

    文章講述了作者在日常工作中遇到的JSch連接問(wèn)題,經(jīng)過(guò)分析發(fā)現(xiàn)是由于連接泄露導(dǎo)致的,作者提出了解決方案,并給出了使用建議:1.在finally代碼塊中關(guān)閉連接;2.在真正使用階段再創(chuàng)建連接,避免創(chuàng)建后不使用又忘記關(guān)閉連接
    2024-11-11
  • MyBatisPlus mybatis-plus-join使用及說(shuō)明

    MyBatisPlus mybatis-plus-join使用及說(shuō)明

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

最新評(píng)論

广丰县| 资源县| 大同市| 湖北省| 广汉市| 萍乡市| 斗六市| 赣州市| 楚雄市| 龙陵县| 友谊县| 普格县| 盐城市| 彭水| 阳谷县| 渑池县| 韩城市| 南召县| 纳雍县| 烟台市| 南雄市| 红安县| 家居| 山东| 丹寨县| 凤凰县| 略阳县| 张家港市| 孝义市| 三江| 娱乐| 峨眉山市| 彭阳县| 四会市| 蛟河市| 高清| 胶州市| 延川县| 昌平区| 莆田市| 维西|