栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java-springboot-Excel导入导出基本操作--EasyPoi

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java-springboot-Excel导入导出基本操作--EasyPoi

在平时的业务系统开发中,经常需要用到导入、导出Excel的功能,本文介绍了一款非常好用的工具EasyPoi,EasyPoi方便我们编写excel和word的模板导入和导出,是对poi的封装的一个工具类,可以让不懂导入导出的我们快速使用poi完成Excel和word的各种操作。

EasyPoi中的Excel自适应xls和xlsx两种格式。
功能介绍:

1.Excel导入
注解导入Map导入
大数据量导入sax模式导入文件保存
文件校验字段校验

2.Excel导出
注解导出
模板导出
html导出

基于注解的导入导出,修改注解就可以修改Excel。
支持常用的样式自定义。
基于map可以灵活定义的表头字段。
支持模板的导出,一些常见的标签,自定义标签。
支持HTML/Excel转换。
支持word的导出,支持图片,Excel。

EasyPoi的使用
1.easypoi 父包
2.easypoi-annotation 基础注解包,作用与实体对象上,拆分后方便maven多工程的依赖管理
3.easypoi-base 导入导出的工具包,可以完成Excel导入,导出,Word的导出,Excel的导出功能
4.easypoi-web 耦合了spring-mvc 基于AbstractView,极大的简化spring-mvc下的导出功能

Spring Boot 2.x版本以上项目的依赖


    cn.afterturn
    easypoi-spring-boot-starter
    4.1.0

Excel导入导出

注解有5个类分别是
@Excel 作用到filed上面,是对Excel一列的一个描述。
@ExcelCollection 表示一个集合,主要针对一对多的导出,比如一个老师对应多个科目,科目就可以用集合表示。
@ExcelEntity 表示一个继续深入导出的实体,但没有太多的实际意义,只是告诉系统这个对象里面同样有导出的字段。
@ExcelIgnore 和名字一样表示这个字段被忽略跳过这个导出。
@ExcelTarget 这个是作用于最外层的对象,描述这个对象的id,以便支持一个对象可以针对不同导出做出不同处理。

Excel导入

导入实体类例子:

@Excel(name = "编号")
private String id;
@Excel(name = "姓名",width = 10)
private String name;
@Excel(name = "年龄",replace = {"10岁_10","11岁_11"})
private Integer age;
@Excel(name = "生日",exportFormat = "yyyy-MM-dd",width = 16)
private Date birthday;

导入的基本代码:

@Test
public void test() {
    ImportParams params = new ImportParams();
    params.setTitleRows(1);
    params.setHeadRows(1);
    long start = new Date().getTime();
    List list = ExcelImportUtil.importExcel(
            new File(PoiPublicUtil.getWebRootPath("import/ExcelExportMsgClient.xlsx")),
            MsgClient.class, params);
    System.out.println(new Date().getTime() - start);
    System.out.println(list.size());
    System.out.println(ReflectionToStringBuilder.toString(list.get(0)));
}

ImportParams这个类是用于设置导入参数的。

Excel导入校验:
对象上加上通用或者自定义校验规则,然后
params.setNeedVerfiy(true);
配置校验即可。

Excel导出

导出实体类例子:

//id
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;

设置4列分别是 学生姓名,学生性别,出生日期,进校日期,其中学生姓名定义了列高,学生性别存在数据库是数字,需要转换,两个日期都进行了格式化输出。

生成Excel代码如下:

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

参考文献:http://easypoi.mydoc.io/

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/948089.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号