美文网首页
Java导出excel

Java导出excel

作者: 电饭锅黑胡椒 | 来源:发表于2017-12-11 15:10 被阅读0次

1.之前项目需求导出简单的excel表格,网上找到了一个叫xxl-excel的工具。

xxl-excel底层用了poi和反射实现的。

xxl-excel能满足一些简单的excel导入导出,不支持复杂的excel导入导出。如果要操作复杂的表格,还是直接操作poi吧。

地址:http://www.xuxueli.com/xxl-excel/#/

2.使用准备

2.1.依赖包引入:

i.可以自己打jar包;

下载下来源码,在项目目录下面运行mvn package命令;在./target目录下会生成

‘xxl-excel-1.1.0-SNAPSHOT.jar’包,加入到要使用的工程中

ii.使用maven公共仓库引入依赖

2.2.依赖的依赖POI

本工具包依赖于POI_3.17,要使用的话需要在自己的工程中添加POI_3.17的依赖;使用maven管理如下:

3.导出Test

3.1.对应excel的简单对象

(省略setter和getter方法)

注解解释:

i.@ExcelSheet : 工作簿的名称,用于类上

属性:

name : 可以从指定名称的工作簿中导入数据;或者指定导出的工作簿名称

headColor : 首行(标题行)的颜色

ii.@ExcelField :字段对应Excel表的列名,用于属性上

属性:

name : 指定对应关系

dateformat :指定时间的格式,默认是“yyyy-MM-dd HH:mm:ss”

width :设置单元格宽度

3.2.对象列表导出到Excel

!.方法介绍:

void exportToFile(String filePath, List... dataList){...}

第二个参数是可以变的参数,意思是可以同时传入多个对象的列表,在一个Excel表中   生成多个sheet来导出不同的数据。

3.3.导出结果

4.导入Test

4.1.和导出一样先定义对应excel的简单对象

(省略setter和getter方法)

4.2.导入的几种方式(方法)

4.2.1.文件路径

控制台打印:

4.2.2.传入文件,转换成输入流

测试工具打印:

4.3.导入方法介绍

i.List importExcel(Class sheetClass, File excelFile){...}

入参是pojo类和文件;

ii.List importExcel(Class sheetClass, String filePath){...}

入参是pojo类和文件路径

iii.List importExcel(Class sheetClass, InputStream inputStream){...}

入参是破击类和输入流

ps:根据使用场景选择不同的导入方法

5.遇到的坑

i.当java对象的字段属性是数字类型时,需要对excel表中的字段做分列处理,否则会报错

java.lang.IllegalStateException: Cannot get a STRING value from a NUMERIC cell

解决办法:

a.选定该列数据

b.点菜单“数据”—“分列”

c.点两次“下一步”

d.在“列数据格式”中选择“文本”—“完成”

完成后在单元格右上角会有一个绿色的标志

ii.pojo对象的属性最好都定义成基本数据类型的封装类型,这样的话数据库单元格为空就不会报错。

例子:

针对Excel数据进行导入操作:

a.正例:

正常输出对应的字段为null:

b.反例:

会报错:

java.lang.IllegalArgumentException: Can not set int field com.ywgroup.iecloud.assetmanagement.testExcel.Dog.age to null value

相关文章

网友评论

      本文标题:Java导出excel

      本文链接:https://www.haomeiwen.com/subject/bsviixtx.html