EasyPoi教程(3)

2018-12-04 15:40

提供了三个实现,

ExcelExportStylerBorderImpl有边框样式

ExcelExportStylerColorImpl有边框间隔行样式 ExcelExportStylerDefaultImpl 默认的样式

样式使用方法ExportParams中调用setStyler就可以了,必须实现有参构造器

publicExcelExportStylerBorderImpl(Workbook workbook) { super.createStyles(workbook); }

Excel模板导出

为了更好的导出Excel,以及Excel的样式定义,复杂的表头等功能对已代码设置的很复杂的情况下使用模板确实是更好的办法,下面这样的样式我们自己实现要实现好久,但是模板就比较容易实现了,Excel分分钟的事情,模板秉承的是继承你的Cell样式,尽量不破坏你的东西

1) 2) 3) 4) 5) 6) 7) 8) 9) 10) 11) 12) 13)

模板支持的语法

空格分割

三目运算 {{test ? obj:obj2}}

n: 表示这个cell是数值类型 {{n:}}

le: 代表长度{{le:()}} 在if/else 运用{{le:() > 8 ? obj1 : obj2}} fd: 格式化时间 {{fd:(obj;yyyy-MM-dd)}} fn: 格式化数字 {{fn:(obj;###.00)}}

单引号表示常量值 '' 比如'1' 那么输出的就是 1 fe: 遍历数据,创建row !fe: 遍历数据不创建row

$fe: 下移插入,把当前行,下面的行全部下移.size()行,然后插入 !if: 删除当前列 {{!if:(test)}} &NULL&控制 ]] 换行符

语法就上面这些,前面7个都没啥需要讲的都是我们一样的语法,说下下面几个

8,9,10都是一样的就是for循环创建表格,不同的是fe是全部都创建自己的表格,!fe是先使用现有的表格,不够了再创建表格,$fe是把这样之下的先往下移动X行,在便利,说下3个的场景 第一个不说了,是不是都要创建

第二个是:比如我们就创建4行或者<4行,4行之后还有别的数据,那么我们就使用!fe来迭代

生成后不会影响其他数据

第三个是:当遍历行下面仍有数据时,不影响下面的数据,进行插入操作

输出结果

导出操作

提供两个方法,一个是都是模板,第二个是第一个封装,就是多个sheet的模板导出

我的使用方式,如果是样式复杂就是模板,样式简单就是代码导出的

Excel导入

注解导入

基于Excel注解导出,只要反过来看代码就可以了,基本上不用讲什么,导出支持的功能,基本上导入同样支持

Map导入

传入对象传入map就可以,返回Map这个Object请大家注意了不确定是什么不过都是基本类型

和上面的是同一个方法

Sax导入

支持的功能不如上面的丰富,不在会吃图片,紧支持基本类型, 对于大数据量导入请使用Sax,避免造成内存溢出

Excel数据校验

校验是集成的JSR303,可选hibernate或者Apache的实现,这个我就不讲了,请大家自行百度, 功能都是一样的,需要开启设置在ImportParams中

这是一个事前校验,一般是数据的合法性,针对数据唯一性什么的,可以使用接口校验

同时提供了导入校验的接口,是整个对象一起校验的,返回校验结果就可以,比较简单

比如

下面说下错误信息的处理

错误信息默认会追加到这一行最后创建一个Cell中去,就是你可以返回这个Excel给用户,再让他改,

同时,我们也希望存放到数据库中这是我们需要我们的Entity实现一个接口


EasyPoi教程(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2018年第一书记年终述职报告 党支部书记述职报告范文word版本 (8

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: