利用poi实现多个word之间的合并(包括图片、表格、样式都不丢失)

2022-07-02 12:25:39

最近项目上经常操作word,之前一直用的freemarker这个框架,在网上搜寻了大量的资料,都推荐使用poi-tl这个工具来实现,

这里我就自己写了一个demo,亲自测试了一下,这个word合并果然简单靠谱,需要注意的是:

需要使用jdk1.8以上的来进行编译

主要步骤:

1.导入poi-tl包:

<dependency>
            <groupId>com.deepoove</groupId>
            <artifactId>poi-tl</artifactId>
            <version>1.9.1</version>
</dependency>

2.写测试类:

package com.mischen.mapreduce.wordcount;

import com.deepoove.poi.xwpf.NiceXWPFDocument;

import java.io.FileInputStream;
import java.io.FileOutputStream;

/**
 * @ClassName TestMergeWord
 * @Description DOTO
 * @Author mischen
 * @Date 2021/5/13 0013 23:16
 * @Version 1.0
 **/
public class TestMergeWord {
    public static void main(String[] args) throws Exception{
        NiceXWPFDocument main = new NiceXWPFDocument(new FileInputStream("C:\\Users\\Administrator\\Desktop\\PMP\\pmp记忆知识点.docx"));

        NiceXWPFDocument sub = new NiceXWPFDocument(new FileInputStream("C:\\Users\\Administrator\\Desktop\\PMP\\zookpeer.docx"));

        NiceXWPFDocument design = new NiceXWPFDocument(new FileInputStream("C:\\Users\\Administrator\\Desktop\\PMP\\设计模式.docx"));

        // 合并两个文档
        NiceXWPFDocument newDoc = main.merge(sub).merge(design);
        // 生成新文档
        FileOutputStream out = new FileOutputStream("C:\\Users\\Administrator\\Desktop\\PMP\\new_doc.docx");
        newDoc.write(out);
        newDoc.close();
        out.close();
        System.out.println("合并word成功!");
    }
}

没有想到的是1.9.1的版本这么强大,简单的就把几个word合并成了一个最终的word,确实比之前的操作要快,合并得也要快,太好用了!

  • 作者:mischen520
  • 原文链接:https://blog.csdn.net/miachen520/article/details/116771337
    更新时间:2022-07-02 12:25:39