• Easypoi生成excel并上传到文件服务器


    Easypoi生成excel并上传到文件服务器

    简介:easypoi功能如同名字easy,主打的功能就是容易,让一个没见接触过poi的人员就可以方便的写出Excel导出,Excel模板导出,Excel导入,Word模板导出,通过简单的注解和模板语言(熟悉的表达式语法),完成以前复杂的写法

    本案例主要是通过注解方式导出excel文档

    集成需要的maven依赖

    <!-- easyPoi -->
    <dependency>
        <groupId>cn.afterturn</groupId>
        <artifactId>easypoi-spring-boot-starter</artifactId>
        <version>4.2.0</version>
    </dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    实体类

    @ExcelTarget("teacherEntity")
    public class StudentEntity implements java.io.Serializable {
       private String id;
       @Excel(name = "学生姓名", height = 20, width = 30, isImportField = "true_st")
       private String name;
       @Excel(name = "学生性别", replace = { "男_1", "女_2" }, suffix = "生", isImportField = "true_st")
       private int sex;
       @Excel(name = "出生日期", databaseFormat = "yyyyMMddHHmmss", format = "yyyy-MM-dd", isImportField = "true_st", width = 20)
       private Date birthday;
       @Excel(name = "进校日期", databaseFormat = "yyyyMMddHHmmss", format = "yyyy-MM-dd")
       private Date registrationDate;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    @Excel注解的使用

    属性类型默认值功能
    nameStringnull列名,支持name_id
    needMergebooleanfasle是否需要纵向合并单元格(用于含有list中,单个的单元格,合并list创建的多个row)
    orderNumString“0”列的排序,支持name_id
    replaceString[]{}值得替换 导出是{a_id,b_id} 导入反过来
    savePathString“upload”导入文件保存路径,如果是图片可以填写,默认是upload/className/ IconEntity这个类对应的就是upload/Icon/
    typeint1导出类型 1 是文本 2 是图片,3 是函数,10 是数字 默认是文本
    widthdouble10列宽
    heightdouble10列高,后期打算统一使用@ExcelTarget的height,这个会被废弃,注意
    isStatisticsbooleanfasle自动统计数据,在追加一行统计,把所有数据都和输出这个处理会吞没异常,请注意这一点
    isHyperlinkbooleanfalse超链接,如果是需要实现接口返回对象
    isImportFieldbooleantrue校验字段,看看这个字段是不是导入的Excel中有,如果没有说明是错误的Excel,读取失败,支持name_id
    exportFormatString“”导出的时间格式,以这个是否为空来判断是否需要格式化日期
    importFormatString“”导入的时间格式,以这个是否为空来判断是否需要格式化日期
    formatString“”时间格式,相当于同时设置了exportFormat 和 importFormat
    databaseFormatString“yyyyMMddHHmmss”导出时间设置,如果字段是Date类型则不需要设置 数据库如果是string 类型,这个需要设置这个数据库格式,用以转换时间格式输出
    numFormatString“”数字格式化,参数是Pattern,使用的对象是DecimalFormat
    imageTypeint1导出类型 1 从file读取 2 是从数据库中读取 默认是文件 同样导入也是一样的
    suffixString“”文字后缀,如% 90 变成90%
    isWrapbooleantrue是否换行 即支持\n
    mergeRelyint[]{}合并单元格依赖关系,比如第二列合并是基于第一列 则{0}就可以了
    mergeVerticalbooleanfasle纵向合并内容相同的单元格
    fixedIndexint-1对应excel的列,忽略名字
    isColumnHiddenbooleanfalse导出隐藏列

    @ExcelTarget注解的使用

    属性类型默认值功能
    valueStringnull定义ID
    heightdouble10设置行高
    fontSizeshort11设置文字大小

    @ExcelEntity注解的使用

    属性类型默认值功能
    idStringnull定义ID

    @ExcelCollection注解的使用

    属性类型默认值功能
    needMergebooleanfasle是否需要纵向合并单元格(用于含有list中,单个的单元格,合并list创建的多个row)
    nameStringnull定义集合列名,支持nanm_id
    orderNumint0排序,支持name_id
    typeClassArrayList.class导入时创建对象使用

    生成Excel代码如下:

     Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams("计算机一班学生"),TeacherEntity.class, new TeacherEntity ("计算机一班学生")));
    
    • 1

    导出如下:
    在这里插入图片描述

  • 相关阅读:
    Linux C语言开发(续)
    设计模式学习(四):建造者模式
    Android retrofit使用模板
    交换机和路由器技术-30-标准ACL
    Jenkins+Python自动化测试持续集成详细教程
    【gzoj1081】k上升段【DP】
    希望所有计算机学生都知道这些刷题网站
    成集云 | 金蝶K3集成聚水潭ERP(金蝶K3主管库存)| 解决方案
    【蓝桥杯单片机】七、EEPROM-AT24C02
    数据库随堂笔记(6)ᝰ数据库设计
  • 原文地址:https://blog.csdn.net/qq_42281649/article/details/126288956