Java word模板导出easypoi篇

位置:首页>文章>详情   分类: 教程分享 > Java教程   阅读(1914)   2023-03-28 11:29:14
Java word模板导出easypoi篇

项目源码下载:demo-easypoi-word-template.zip 访问密码9987

一、maven依赖

        <!--easypoi  自动POI依赖版本为3.15-->
        <dependency>
            <groupId>cn.afterturn</groupId>
            <artifactId>easypoi-base</artifactId>
            <version>3.3.0</version>
        </dependency>
        <dependency>
            <groupId>cn.afterturn</groupId>
            <artifactId>easypoi-web</artifactId>
            <version>3.3.0</version>
        </dependency>
        <dependency>
            <groupId>cn.afterturn</groupId>
            <artifactId>easypoi-annotation</artifactId>
            <version>3.3.0</version>
        </dependency>
        <!--注意:word中要使用循环等标签必须单独导入以下依赖-->
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>ooxml-schemas</artifactId>
            <version>1.1</version>
        </dependency>

二、word模板制作

word模板
word模板

【重要提示】:某些时候写的表达式感觉总是不能被替换为值,试着把表达式复制到文本工具(例如记事本)里面再复制回来。


三、工具类
package net.ifok.demo.easypoiword;

import cn.afterturn.easypoi.word.WordExportUtil;
import org.apache.poi.xwpf.usermodel.XWPFDocument;

import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class WordUtil {

    /**
     * 导出word(2007版本docx)
     *
     * @param templateWordPath
     * @param dataMap
     * @return
     * @throws Exception
     */
    public static byte[] exportWord(String templateWordPath, Map<String, Object> dataMap) throws Exception {
        File tf = new File(templateWordPath);
        if (!tf.exists() || !tf.isFile()) {
            throw new RuntimeException("File [" + templateWordPath + "] Not Found Or Not File.");
        }
        XWPFDocument document = WordExportUtil.exportWord07(templateWordPath, dataMap);
        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        document.write(bos);
        return bos.toByteArray();
    }

    public static void main(String[] args) {
        try {
            try (FileOutputStream fos = new FileOutputStream("d:/test/exp.docx")) {
                Map<String, Object> dataMap = new HashMap<>();
                dataMap.put("title", "个人信息");
                Map<String, String> user = new HashMap<>();
                user.put("name", "张三");
                user.put("age", "22");
                user.put("address", "重庆渝北区");
                user.put("other", "篮球");
                dataMap.put("user", user);

                List<Map<String, String>> jobs = new ArrayList<>();
                Map<String, String> job;
                for (int i = 0; i < 5; i++) {
                    job = new HashMap<>();
                    job.put("name", "公司名称-" + i);
                    job.put("address", "公司地址:" + i);
                    jobs.add(job);
                }

                dataMap.put("jobs",jobs);

                byte[] doc = exportWord("d:/test/template.docx", dataMap);

                fos.write(doc);

                fos.flush();

            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

四、执行工具类测试


结果图:
导出结果图
导出结果图


 


 
标签: easypoi word java
地址:https://www.leftso.com/article/552.html

相关阅读

Java word模板导出easypoi篇项目源码下载:demo-easypoi-word-template.zip 访问密码9987一、maven依赖 &lt;!--easypo...
java编程中通过easypoi导出excel文件并处理导出数据
java通过freemarker导出word循环合并表格单元格本文主要讲解通过freemarker模板引擎来导出word,并且在word中包含表格的合并部分需要循环生成
引言    现如今越来越多的web网站或者内部管理web系统都有自己的数据分析中心
eclipse复制高亮代码到word中
Swagger2 导出离线文档简述继上一篇搬运国外的swagger2导出离线文档之后,最近发现国内一款不错的swagger ui组件和导出离线的方法,比之前的更简单优雅
Spring WebFlux入门程序hello word。本文主要在于讲解如何创建和运行spring webflux入门程序hello word。其实不难发现和spring mvc相比代码层基本...
1.前言通过前面的两篇博客Spring Boot Security Swagger2整合生成安全的在线REST API文档 SpringMVC也可参考spring boot REST 通过Swa...
Java编程之spring boot FastDFS Java client使用,Java编程,FastDFS Java客户端
Java编程之java static关键字,Java编程,static关键字