java使用EasyExcel导入导出excel

使用alibab的EasyExce完成导入导出excel

一、准备工作

1、导包


    org.apache.poi
    poi
    3.17

    org.apache.poi
    poi-ooxml-schemas
    3.17

    org.apache.poi
    poi-ooxml
    3.17

    com.alibaba
    easyexcel
    2.1.7

二、了解注解

1、常用注解

字段注解 类注解 @ColumnWith(列宽) @ColumnWidth(全局列宽) @ExcelProperty(字段配置) @HeadFontStyle(头样式) @HeadRowHeight(标题高度) @ContentFontStyle(内容字体样式) @ContentRowHeight(内容高度)

2、@ExcelProperty注解

必要的一个注解,注解中有三个参数value,index分别代表列明,列序号
value和index只能二选一,通常不用设置converter
1.value 通过标题文本对应
2.index 通过文本行号对应

@ExcelProperty(value = "编号", index = 0)
private Long id;

3、@ColumnWith注解

设置列宽度,只有一个参数value,value的单位是字符长度,最大可以设置255个字符,因为一个excel单元格最大可以写入的字符个数就是255个字符

public class ImeiEncrypt {
    @ColumnWidth(value = 255) //excel单个单元格最大长度255
    private String message;
}

4、@ContentFontStyle注解

用于设置单元格内容字体格式的注解

参数 含义 fontName 字体名称 fontHeightInPoints 字体高度 italic 是否斜体 strikeout 是否设置删除水平线 color 字体颜色 typeOffset 偏移量 underline 下划线 bold 是否加粗 charset 编码格式

5、@ContentStyle注解

设置内容格式注解

参数 含义 dataFormat 日期格式 hidden 设置单元格使用此样式隐藏 locked 设置单元格使用此样式锁定 quotePrefix 在单元格前面增加`符号,数字或公式将以字符串形式展示 horizontalAlignment 设置是否水平居中 wrapped 设置文本是否应换行。将此标志设置为true通过在多行上显示使单元格中的所有内容可见 verticalAlignment 设置是否垂直居中 rotation 设置单元格中文本旋转角度。03版本的Excel旋转角度区间为-90°90°,07版本的Excel旋转角度区间为0°180° indent 设置单元格中缩进文本的空格数 borderLeft 设置左边框的样式 borderRight 设置右边框样式 borderTop 设置上边框样式 leftBorderColor 设置左边框颜色 rightBorderColor 设置右边框颜色 topBorderColor 设置上边框颜色 bottomBorderColor 设置下边框颜色 fillPatternType 设置填充类型 fillBackgroundColor 设置背景色 shrinkToFit 设置自动单元格自动大小

6、@HeadFontStyle注解

用于定制标题字体格式

参数 含义 fontName 设置字体名称 fontHeightInPoints 设置字体高度 italic 设置字体是否斜体 strikeout 是否设置删除线 color 设置字体颜色 typeOffset 设置偏移量 underline 设置下划线 charset 设置字体编码 bold 设置字体是否加粗

7、ExcelIgnore注解

不将该字段转换成Excel

三、编码

1、映射实体类—-例子

package com.pingou.admin.bean.param;

import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentRowHeight;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import lombok.Data;

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

@Data
@ContentRowHeight(35) //文本行高度
@HeadRowHeight(40)    //标题高度
@ColumnWidth(40)
public class OrderExcel {
    //设置excel表头名称
    @ExcelProperty(value = "编号", index = 0)
    private Long id;
    @DateTimeFormat("yyyy年MM月dd日HH时mm分ss秒")
    @ExcelProperty(value = "创建时间", index = 1)
    private Date createTime;
}

以上是简单的举例,如果有更多属性自己逐个写就好,然后塞进该实体类就好~

java使用EasyExcel导入导出excel

2、生成excel

public void excel() {
        //欲导出excel的数据结果集
        List excel = new ArrayList<>();
        //省略 向结果集里插入数据的操作

        //UUID生成唯一name
        String name = UUID.randomUUID().toString().replaceAll("-", "") + ".xlsx";
        //实现excel写的操作

        //1 设置写入文件夹地址和excel文件名称
        String filename = "/路径" + name;
        JSONObject json = new JSONObject();
        try {
            // 2 调用easyexcel里面的方法实现写操作
            // write方法两个参数:第一个参数文件路径名称,第二个参数实体类class
            EasyExcel.write(filename, OrderExcel.class).sheet("名字").doWrite(excel);
            //上传到fastdfs上 不上传的话只有本机可以找到,在上面路径下生成excel
            File file = new File(filename);
            String path = fastDFSClient.upload(new FileInputStream(file), name, null);
            path = (this.fastdfsDomain + path);
            json.put("url", path);
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            new File(filename).delete();
        }
    }

以上,就生成完毕了!

java使用EasyExcel导入导出excel

四、结果

java使用EasyExcel导入导出excel

豁~搞定

java使用EasyExcel导入导出excel

Original: https://www.cnblogs.com/pkkyh/p/14771249.html
Author: 迷途者寻影而行
Title: java使用EasyExcel导入导出excel

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/575749/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • SQL学习日记(一) 语法篇

    对象名 关键字 描述 表 table 存储数据的逻辑单元,以行和列存在,行是数据记录,列是(属性)字段 系统表(数据字典) 存放数据库相关信息的表 程序员只可查看,不可修改 约束 …

    数据库 2023年5月24日
    078
  • leetcode 208. Implement Trie (Prefix Tree) 实现 Trie (前缀树) (中等)

    Trie(发音类似 “try”)或者说 前缀树 是一种树形数据结构,用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景,例如自动补完和拼…

    数据库 2023年6月16日
    0100
  • 新来的同时问我where 1=1是什么意思

    写在前面 之前在项目代码中写了一条sql查询语句,在where条件搜索中加入了where 1=1,新来的同事之后问我where 1=1 是什么意思,这样没意义啊,我笑了。今天来说明…

    数据库 2023年6月6日
    089
  • MySQL学习笔记-day02

    select distinct job from emp;# distinct关键字去除重复记录。 结果: +———–+ | job | +———–+ …

    数据库 2023年6月11日
    096
  • 第十三章 后置处理Bean

    BeanPostProcessor: 对Spring工厂所创建的对象,进行再加工 注意: BeanPostProcessor是一个接口 程序员实现BeanPostProcessor…

    数据库 2023年6月14日
    079
  • 巧用自定义注解,一行代码搞定审计日志

    任何一个软件系统,都不可避免的会碰到【 信息安全】这个词,尤其是对于刚入行的新手,比如我,我刚入行的时候,领导让我做一个数据报表导出功能,我就按照他的意思去做,至于谁有权限操作导出…

    数据库 2023年6月14日
    072
  • jenkins 忘记密码

    仅适用centos7 一、 忘记密码 终端输入: vi /root/.jenkins/secrets/initialAdminPassword 复制文本内的密码,进行登录,此密码可…

    数据库 2023年6月14日
    079
  • MYSQL的Java操作器——JDBC

    在学习了Mysql之后,我们就要把Mysql和我们之前所学习的Java所结合起来 而JDBC就是这样一种工具:帮助我们使用Java语言来操作Mysql数据库 JDBC简介 首先我们…

    数据库 2023年6月14日
    083
  • Python_Pandas入门

    一、什么是Pandas? 博文转载: https://www.runoob.com/pandas/pandas-tutorial.html 基于NumPy的一种工具,该工具是为解决…

    数据库 2023年6月11日
    0184
  • Spring中常见的注解

    1.组件注解 @Controller @Service @Repository @Component —标注一个类为Spring容器的Bean @Configratio…

    数据库 2023年6月11日
    088
  • Linux常用命令总结(二)

    1.Netstat 命令 用于显示各种网络相关信息,如网络连接,路由表,接口状态等待。 例如 统计IP110.120.119.XXX的连接数: netstat | grep 110…

    数据库 2023年6月16日
    089
  • 笔记-docker学习-2

    继续之前的docker学习 16、 docker commit从容器创建一个新的镜像 OPTIONS说明: -a :提交的镜像作者; -c :使用Dockerfile指令来创建镜像…

    数据库 2023年6月9日
    079
  • Element UI的第一个程序(标签使用)

    1:Element UI 官方文档:https://element.faas.ele.me/ 2:Element UI是什么? 网站快速成型工具 *Element,一套为开发者、设…

    数据库 2023年6月6日
    0109
  • 学习笔记——Django项目中的F对象,Q对象,聚合函数,排序

    2022-09-30 F对象: 在shell中是用于两个有关联的属性之间的查询。 使用实例: 查询书籍表中阅读量大于评论量的记录 前提,进入pycharm,进入虚拟环境,进入she…

    数据库 2023年6月14日
    091
  • [spring]spring注解开发

    8.使用注解开发 1.bean spring4以后,注解依赖于aop包,确保你的lib中有它 确保开启了使用注解 2.组件代替bean实现自动注入 在配置文件中自动扫描包下的所有类…

    数据库 2023年6月16日
    085
  • 关于pycharm打开时很卡,一直加载中的解决办法~

    相信很多刚开始使用pycharm不太熟练的小伙伴,每天一开机打开pycharm总是卡半天,不知道的还以为是电脑卡了或者啥问题的。 莫慌,其实并不是… 今天我们就来解决一…

    数据库 2023年6月14日
    0115
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球