easypoi 导出word表格

这篇具有很好参考价值的文章主要介绍了easypoi 导出word表格。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

pom.xml 引入:

       <!-- easypoi-->
        <dependency>
            <groupId>cn.afterturn</groupId>
            <artifactId>easypoi-base</artifactId>
            <version>4.1.0</version>
        </dependency>
        <dependency>
            <groupId>cn.afterturn</groupId>
            <artifactId>easypoi-web</artifactId>
            <version>4.1.0</version>
        </dependency>
        <dependency>
            <groupId>cn.afterturn</groupId>
            <artifactId>easypoi-annotation</artifactId>
            <version>4.1.0</version>
        </dependency>
        <!-- 防止控制台打印错误提示-->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-nop</artifactId>
            <version>1.7.6</version>
        </dependency>

Student.java

package com.ruoyi.project.demo.domain;

import cn.afterturn.easypoi.excel.annotation.Excel;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * @className: Student
 * @description: 学生信息
 * @date: 2021/12/16
 * @author: cakin
 */
public class Student implements Serializable {
    private static final long serialVersionUID = 2131321500629905052L;

    @Excel(name = "学生姓名")
    private String studentName;

    @Excel(name = "学生年龄")
    private Integer age;

    @Excel(name = "学生生日", importFormat = "yyyy/MM/dd", exportFormat = "yyyy/MM/dd")
    private Date birthday;

    @Excel(name = "语文成绩")
    private BigDecimal chineseScore;

    @Excel(name = "数学成绩")
    private BigDecimal mathScore;

    public String getStudentName() {
        return studentName;
    }

    public void setStudentName(String studentName) {
        this.studentName = studentName;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public Date getBirthday() {
        return birthday;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }

    public BigDecimal getChineseScore() {
        return chineseScore;
    }

    public void setChineseScore(BigDecimal chineseScore) {
        this.chineseScore = chineseScore;
    }

    public BigDecimal getMathScore() {
        return mathScore;
    }

    public void setMathScore(BigDecimal mathScore) {
        this.mathScore = mathScore;
    }
}




WordTest.java

package com.ruoyi.project.demo.domain;

import cn.afterturn.easypoi.word.WordExportUtil;
import cn.afterturn.easypoi.word.entity.params.ExcelListEntity;
import cn.afterturn.easypoi.word.parse.excel.ExcelEntityParse;
import org.apache.poi.xwpf.usermodel.XWPFDocument;

import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.math.BigDecimal;
import java.util.*;

/**
 * @className: WordUtils
 * @description: 参考文档
 * https://blog.csdn.net/dingfengbo1203/article/details/106229844
 * https://blog.csdn.net/YangangwuWuyangang/article/details/115206209
 * @date: 2021/12/16
 * @author: cakin
 */
public class WordTest {
    private static final String TEMPLATE_FILE_NAME = "D:/template.docx";
    private static final String TEMPLATE_FILE_NAME_JOB = "D:/template_job.docx";

    public static void main(String[] args) {
        // 简单文档导出
        SimpleWordExport();
        // 列表导出
        ExportList();
        // 导出工作经历
        exportJob();
    }

    /**
     * 功能描述:简单文档导出
     *
     * @author cakin
     * @date 2021/12/16
     */
    public static void SimpleWordExport() {
        Map<String, Object> map = new HashMap<>();
        map.put("0", "one");
        map.put("1", "two");
        map.put("2", "three");
        map.put("3", "four");
        map.put("4", "five");
        map.put("5", "six");
        try {
            XWPFDocument doc = WordExportUtil.exportWord07( TEMPLATE_FILE_NAME, map);
            FileOutputStream fos = new FileOutputStream("D:/simpleWord.docx");
            doc.write(fos);
            fos.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 功能描述:列表导出
     *
     * @author cakin
     * @date 2021/12/16
     */
    public static void ExportList() {
        Map<String, Object> map = new HashMap<>();
        map.put("0", "one");
        map.put("1", "two");
        map.put("2", "three");
        map.put("3", "four");
        map.put("4", "five");
        map.put("5", "six");
        try {
            XWPFDocument doc = WordExportUtil.exportWord07(TEMPLATE_FILE_NAME, map);
            List<Student> list = new ArrayList<>(2);
            addStudents(list);
            // 导出批量数据
            new ExcelEntityParse().parseNextRowAndAddRow(doc.getTableArray(1), 1, new ExcelListEntity(list, Student.class, 1));


            FileOutputStream fos = new FileOutputStream("D:/simpleList.docx");
            doc.write(fos);
            fos.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 功能描述:增加学生到列表中
     *
     * @param list 列表
     * @author 贝医
     * @date 2021/12/16
     */
    private static void addStudents(List<Student> list) {
        Student stu = new Student();
        stu.setStudentName("wuyuan");
        stu.setAge(11);
        stu.setBirthday(new Date());
        stu.setChineseScore(new BigDecimal("88"));
        stu.setMathScore(new BigDecimal("85.5"));
        list.add(stu);
        stu = new Student();
        stu.setStudentName("lisi");
        stu.setAge(12);
        stu.setBirthday(new Date());
        stu.setChineseScore(new BigDecimal("87"));
        stu.setMathScore(new BigDecimal("89"));
        list.add(stu);
    }

    /**
     * 功能描述:导出工作经历
     *
     * @author cakin
     * @date 2021/12/16
     */
    public static void exportJob() {
        try {
            try (FileOutputStream fos = new FileOutputStream("d:/expJob.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(TEMPLATE_FILE_NAME_JOB, dataMap);
                fos.write(doc);
                fos.flush();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 导出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();
    }
}




template.docx 模板内容:

{{0}}

{{1}}

{{2}}

{{3}}

{{4}}

{{5}}

学生姓名

学生年龄

学生生日

语文成绩

数学成绩

template_job.docx 模板内容:

名称

年龄

地址

名称2

{{user.name}}

{{user.age}}

{{user.address}}

{{user.other}}

公司名称

地址

{{$fe:jobs t.name

t.address}}文章来源地址https://www.toymoban.com/news/detail-533688.html

到了这里,关于easypoi 导出word表格的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Easypoi & Apache poi】 Java后端 Word导入与导出

            如果这里造成了读取resources下的文件返回前端乱码问题:除了HttpServletResponse响应中设置字体问题,还有可能是因为在编译期文件就已经乱码了,所以需要在pom.xml中增加以下配置。

    2024年02月11日
    浏览(37)
  • Easypoi实现表格导出(实现数据结构一对多,合并单元格)

    官方文档:EasyPoi教程_V1.0 1.添加maven依赖 2、导出对应的实体类(一对多中的“一”)     3、子集对象实体类(一对多中的“多”)   4、导出Excel的实现方法 4、实例  

    2024年02月08日
    浏览(29)
  • 使用若依框架和 EasyPoi 导出 Word 文档的方法详解

    若依框架是一个基于 Spring Boot 和 Vue 的快速开发平台,而 EasyPoi 是一个方便的 Java 导入导出工具库。本文将介绍如何在若依框架中使用 EasyPoi 导出 Word 文档,帮助你实现简单且高效的导出功能。 首先,我们需要在若依框架中添加 EasyPoi 的依赖。可以通过 Maven 或 Gradle 来管理依

    2024年02月13日
    浏览(91)
  • JAVA之利用easypoi将word模板导出为pdf(可带图片)

    EasyPoi是一款基于POI的Java快速导出/导入Excel工具。它在POI的基础上进行了封装,提供了更加简洁易用的API,使得生成Excel文件更加容易和高效。 使用EasyPoi可以轻松地生成Excel文件,并支持多种格式,如xlsx、xls、csv等。同时,EasyPoi也支持读取Excel文件,可以方便地获取其中的数

    2024年02月08日
    浏览(36)
  • java导出word(含图片、表格)

    1.pom 引入 2.java代码示例 3.效果展示

    2024年02月07日
    浏览(31)
  • java实现将数据导出为word功能(文字,表格,图片的循环导出)

    这里需要注意的点!!!!!!!!!!!!!!!!! easypoi的版本必须在4.3.0以上,否则在导出图片的时候,只会导出图片的内存地址,却不能显示出图片。  解释一下模板中所填充的东西: 1.像这种:用两个花括号括起来的变量名,到时候会将变量名所指代的数据填充进

    2024年02月02日
    浏览(32)
  • poi-tl导出word复杂表格(单元格合并,生成复杂表格)

    官方文档地址:http://deepoove.com/poi-tl/ 源码地址:https://github.com/Sayi/poi-tl poi-tl(poi template language)是Word模板引擎,使用Word模板和数据创建很棒的Word文档。 最近在做项目时候有一个关于导出Word的文件的需求,需要导出的word文件较大,并且格式比较复杂,使用poi-tl可以很好的

    2024年02月16日
    浏览(31)
  • vue导出word文档(含ECharts,多图片,表格等)

    package.json 安装文件包      1.导入插件包   2.初始化echarts图表时  将echarts图片转为base64格式(为后续导出准备)   3.导出echarts图片,格式转换,官方自带,不需要修改  4.导出word 具体实现方法(包含发邮件,上传到服务器) 5.word文档模板 效果图:       1.如果有将文件流

    2024年02月13日
    浏览(29)
  • VUE使用docxtemplater导出word(带图片) 踩坑 表格循环空格 ,canvas.toDataURL图片失真模糊问题

    参考:https://www.codetd.com/article/15219743 安装 关键代码JS部分 导出函数 vue 中引入上述js文件和方法 模板内容 自己准备一个docx文档,然后里面标注好需替换的参数 列表循环-- {#list}{name}{/list} 单个参数–{} 图片–{%imgUrl} 大概就这些,我也是从参考链接里看到的,至此基本能解决

    2024年02月15日
    浏览(29)
  • EasyPoi表格导入添加校验

    页面生成到处错误文件的 excel 表格内容如下

    2024年04月13日
    浏览(21)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包