功能介绍
IMPORT
alanpoi import有何优势?
-
valid:方法参数返回excel所有数据,用户可进行自我校验
-
error:导入错误会回调
-
end:方法参数返回校验成功的数据,valid校验失败的数据不会返回,用户可以自己操作持久化或者其他业务
-
用户不需要额外引入poi等繁琐的jar
-
毫秒级解析大文件,支持一键解析多sheet页签,不需要自己按照一定的格式循环匹配解析所有数据
-
不管你的系统多么复杂,有多少个导入,
alanpoi
全部支持,而且准确返回你需要的对象,减轻开发者工作量 -
目前外界业务越来越复杂,对各个功能要求也越来越严格,当然导入也不例外,alanpoi支持错误一键回写到excel,对应到每一行
-
alanpoi
灵活可扩展,提供了ExcelConsumeInterface
接口,可继承它,实现valid、error、end
三个方法编写自己的业务
怎么使用alanpoi实现导入
项目中使用:
<dependency> <groupId>com.alanpoigroupId> <artifactId>alanpoi-analysisartifactId> <version>1.3.0version> dependency>
简单一句话:一配置一继承一调用
一配置
在项目resources目录中新建excel-config.xml
文件,cosume中配置自己的消费类路径,继承ExcelConsumeInterface
接口,sheet中的vo是把当前sheet序列化的对象路径,column中当然就是配置vo中的属性了。
其中name可选字段,填了就是按照这个匹配excel列名,不填就是按照offset顺序;导入包含多个sheet就配置多个
<exgname="excelId"version="1.0"file-type="excel"> <excelid="ACCOUNT"consume="com.xxx.FinAccountImportHandler"> <sheetindex="0"row-start="1"column-start="0" vo="com.xxx.vo.FinAccountImportVO"> <columnname="公司/供应商编号"offset="1">companyCodecolumn> <columnname="公司/供应商名称"offset="2">companyNamecolumn> <columnname="银行账号"offset="3">bankAccountcolumn> <columnname="开户银行"offset="4">bankNamecolumn> sheet> excel> exg>
一继承
consume
类继承ExcelConsumeInterface
接口,实现方法
/** *whenerrorwill调用 * *@paramexcelError */ voiderror(ExcelErrorexcelError); /** *customvaliddata * *@paramworkbookId *@paramsheetDataList */ voidvalidData(StringworkbookId,List
一调用
用户调用ExcelExportUtil
类的customImportData
即可,参数excelId就是excel-conifg.xml
中配置的id
Export
描叙
能够用一行代码实现绝不用第二行,如果一行不行,那就再加一行!
模式
注解模式导出:
-
ExcelSheet注解:用于导入类上,可制定sheet名,列头的颜色、字体、高度、宽度
-
ExcelColum注解:用于导入类的属性上,可指定列头的名称,单元格的样式
-
DateFormat注解:用于导入类的属性上, 可以按照指定格式输出到excel,默认"
yyyy/MM/dd
" -
NumFormat注解:用于导入类的属性上,可以按照指定格式输出到excel,默认"
00.00
"
样例:
@ExcelSheet(name="测试",backColor=AlanColors.GREEN,font="宋体",fontSize=25) @Data publicclassExportVO{ @ExcelColumn(name="名称",width=32,link="${url}") privateStringname; @ExcelColumn(name="值") privateStringvalue; @ExcelColumn(name="金额") @NumFormat(value="0000.00##") privateBigDecimalamount; @ExcelColumn(name="时间格式化") @DateFormat(value="yyyy-MM-ddhhss") privateDatedateTime; @DateFormat @ExcelColumn(name="日期格式化") privatejava.sql.Datedate; @ExcelColumn(isExist=false) privateStringurl; }
使用
方式一. 直接导出到浏览器
ExcelExportUtil.export(Colletion>,Class,HttpServletRequest,HttpServletResponse,fileName);
方式二. 调用getWorkbook
获取工作表,自行处理workbook
ExcelExportUtil.getWorkbook(Collection>singleSheetData,Class>c)
高级使用
示例一:导出指定列(动态导出列)
List
示例二:多sheet页签导出
List
代码已经开源,地址:
https://github.com/alan-et/alanpoi/tree/develop/alanpoi-analysis
-
处理器
+关注
关注
68文章
19155浏览量
229059 -
Excel
+关注
关注
4文章
218浏览量
55445 -
import
+关注
关注
0文章
15浏览量
1949
原文标题:几行代码就能实现复杂的 Excel 导入导出,这个工具类真心强大!
文章出处:【微信号:AndroidPush,微信公众号:Android编程精选】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论