java使用EasyExcel导入导出excel

 更新时间:2021年05月21日 14:58:58   作者:迷途者寻影而行  
导入导出excel数据是常见的需求,今天就来看一下Java基于EasyExcel实现这个功能,感兴趣的朋友可以了解下

一、准备工作

1、导包

<!-- poi 相关-->
<dependency>
	<groupId>org.apache.poi</groupId>
	<artifactId>poi</artifactId>
	<version>3.17</version>
</dependency>
<dependency>
	<groupId>org.apache.poi</groupId>
	<artifactId>poi-ooxml-schemas</artifactId>
	<version>3.17</version>
</dependency>
<dependency>
	<groupId>org.apache.poi</groupId>
	<artifactId>poi-ooxml</artifactId>
	<version>3.17</version>
</dependency>
<!-- esayexcel 2.1.7  -->
<dependency>
	<groupId>com.alibaba</groupId>
	<artifactId>easyexcel</artifactId>
	<version>2.1.7</version>
</dependency>

二、了解注解

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;
}

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

2、生成excel

public void excel() {
        //欲导出excel的数据结果集
        List<OrderExcel> 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的资料请关注脚本之家其它相关文章!

相关文章

  • jvm中指定时区信息user.timezone问题及解决方式

    jvm中指定时区信息user.timezone问题及解决方式

    同一份程序使用时间LocalDateTime类型,在国内和国外部署后,返回的时间信息前端使用出问题,这篇文章主要介绍了jvm中指定时区信息user.timezone问题及解决方法,需要的朋友可以参考下
    2023-02-02
  • Spark调优多线程并行处理任务实现方式

    Spark调优多线程并行处理任务实现方式

    这篇文章主要介绍了Spark调优多线程并行处理任务实现方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • 使用游长编码对字符串压缩 Run Length编码示例

    使用游长编码对字符串压缩 Run Length编码示例

    这篇文章主要介绍了Run Length编码的一个示例,大家参考使用吧
    2014-01-01
  • java实现zip,gzip,7z,zlib格式的压缩打包

    java实现zip,gzip,7z,zlib格式的压缩打包

    本文是利用Java原生类和apache的commons实现zip,gzip,7z,zlib的压缩打包,如果你要是感兴趣可以进来了解一下。
    2016-10-10
  • Java递归实现评论多级回复功能

    Java递归实现评论多级回复功能

    这篇文章主要介绍了Java递归实现评论多级回复功能,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • java lambda 表达式中的双冒号的用法说明 ::

    java lambda 表达式中的双冒号的用法说明 ::

    这篇文章主要介绍了java lambda 表达式中的双冒号的用法说明 ::具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • SpringBoot 自定义注解之脱敏注解详解

    SpringBoot 自定义注解之脱敏注解详解

    这篇文章主要介绍了SpringBoot 自定义注解之脱敏注解详解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • SpringBoot读取配置文件常用方法解析

    SpringBoot读取配置文件常用方法解析

    这篇文章主要介绍了SpringBoot读取配置文件常用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • SpringBoot中读取配置的七种方法总结

    SpringBoot中读取配置的七种方法总结

    在Spring Boot应用中,读取配置是一项基础且重要的任务,Spring Boot提供了多种灵活的方式来读取配置,以满足不同场景下的需求,本文将详细介绍Spring Boot中读取配置的几种常用方法,需要的朋友可以参考下
    2024-08-08
  • Fastjson反序列化随机性失败示例详解

    Fastjson反序列化随机性失败示例详解

    这篇文章主要为大家介绍了Fastjson反序列化随机性失败示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08

最新评论