alanpoi import有何优势 怎么使用alanpoi实现导入

功能介绍 import excelhandle 核心处理器
excelworkbookmanage excel所有工作表管理
excelinitconfig 配置文件初始化
abstractfileparser 文件转换类
alanpoi import有何优势? valid: 方法参数返回excel所有数据,用户可进行自我校验
error: 导入错误会回调
end: 方法参数返回校验成功的数据,valid校验失败的数据不会返回,用户可以自己操作持久化或者其他业务
用户不需要额外引入poi等繁琐的jar
毫秒级解析大文件,支持一键解析多sheet页签,不需要自己按照一定的格式循环匹配解析所有数据
不管你的系统多么复杂,有多少个导入,alanpoi全部支持,而且准确返回你需要的对象,减轻开发者工作量
目前外界业务越来越复杂,对各个功能要求也越来越严格,当然导入也不例外,alanpoi支持错误一键回写到excel,对应到每一行
alanpoi灵活可扩展,提供了excelconsumeinterface接口,可继承它,实现valid、error、end三个方法编写自己的业务
怎么使用alanpoi实现导入 项目中使用:
    com.alanpoi     alanpoi-analysis     1.3.0
简单一句话:一配置一继承一调用
一配置 在项目resources目录中新建excel-config.xml文件,cosume中配置自己的消费类路径,继承excelconsumeinterface接口,sheet中的vo是把当前sheet序列化的对象路径,column中当然就是配置vo中的属性了。
其中name可选字段,填了就是按照这个匹配excel列名,不填就是按照offset顺序;导入包含多个sheet就配置多个
                  companycode          companyname          bankaccount          bankname        
一继承 consume类继承excelconsumeinterface接口,实现方法
/**  * when error will 调用  *  * @param excelerror  */ void error(excelerror excelerror); /**  * custom valid data  *  * @param workbookid  * @param sheetdatalist  */ void validdata(string workbookid, list sheetdatalist, map excelparam); /**  * @param sheetdatalist return success data  */ void end(list sheetdatalist, map excelparam);
一调用 用户调用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 public class exportvo {     @excelcolumn(name = 名称, width = 32, link = ${url})     private string name;     @excelcolumn(name = 值)     private string value;     @excelcolumn(name = 金额)     @numformat(value = 0000.00##)     private bigdecimal amount;     @excelcolumn(name = 时间格式化)     @dateformat(value = yyyy-mm-dd hhss)     private date datetime;     @dateformat     @excelcolumn(name = 日期格式化)     private java.sql.date date;          @excelcolumn(isexist = false)     private string url; }
使用 方式一. 直接导出到浏览器
excelexportutil.export(colletion,class,httpservletrequest,httpservletresponse,filename);
方式二. 调用getworkbook获取工作表,自行处理workbook
excelexportutil.getworkbook(collection singlesheetdata, class c)
高级使用 示例一:导出指定列(动态导出列)
list list = new arraylist(); for (int i = 0; i < 500; i++) {     exportvo exportvo = new exportvo();     exportvo.setname(name + i);     exportvo.setvalue(new bigdecimal(123.11 + i * 0.09));     exportvo.setamount(new bigdecimal(6666.666 + i * 10));     exportvo.setdate(new date(132324343 + i * 100));     exportvo.setdatetime(new java.util.date());     list.add(exportvo); } list collist = new arraylist(); //按照顺序仅导出add的列 collist.add(name); collist.add(value); //调用获取workbook对象;也可以直接调用exportspecifycol方法导出到浏览器 workbook workbook = excelexportutil.getworkbookspecifycol(list, exportvo.class, collist);
示例二:多sheet页签导出
list list = new arraylist(); list list2 = new arraylist(); for (int i = 0; i < 500; i++) {     exportvo exportvo = new exportvo();     exportvo.setname(name + i);     exportvo.setvalue(new bigdecimal(123.11 + i * 0.09));     exportvo.setamount(new bigdecimal(6666.666 + i * 10));     exportvo.setdate(new date(132324343 + i * 100));     exportvo.setdatetime(new java.util.date());     list.add(exportvo);     export2vo export2vo = new export2vo();     export2vo.setname(name + i);     export2vo.setvalue(value + i);     export2vo.setamount(new bigdecimal(6666.666 + i * 10));     export2vo.setdate(new date(132324343 + i * 100));     export2vo.setdatetime(new java.util.date());     list2.add(export2vo); } map map = new hashmap(); map.put(exportvo.class, list); map.put(export2vo.class, list2); //调用获取workbook对象;也可以直接调用exportbymultisheet方法导出到浏览器 workbook workbook = excelexportutil.getworkbookbymultisheet(map);
代码已经开源,地址:
https://github.com/alan-et/alanpoi/tree/develop/alanpoi-analysis
原文标题:几行代码就能实现复杂的 excel 导入导出,这个工具类真心强大!
文章出处:【微信公众号:android编程精选】欢迎添加关注!文章转载请注明出处。

工信部对促进移动通信转售行业高质量发展提出了四点意见
中移动加盟FDD 欲逼死联通电信?
腾达别墅路由nova荣获2017中国好WiFi“年度产品奖”
利普思SiC功率模块产品通过欧洲航空设备厂家验证
固态电容和钽电容二者之间的区别是什么
alanpoi import有何优势 怎么使用alanpoi实现导入
苹果公司宣布,将斥资10亿美元在美国德克萨斯州奥斯汀兴建第二个园区
多彩节能的夏日平板挑选法则
这么萌还不买?红米Note4X初音专属配色图赏
高、低端两头受敌,2013年高通面临大挑战
主动红外入侵探测器的安装环境_主动红外探测器的安装注意事项
联通上线5G升级包 9.9元即可畅享5G流量
嵌入式状态监测与故障诊断装置设计
智能硬件创新设计行业走势及战略布局
基于LINUX的嵌入式浏览器的设计与实现
华为史上最好看手机今天发布 叫板iPhone7
带鱼屏+升降镜头?颜值超高,但看到处理器?再见?
适用于传输少量数据的蓝牙低能耗技术
IBM助力客户斩获多项IDC中国未来企业大奖
三种write mode,你真的理解吗?