介绍
今天就跟大家聊聊有关如何在Java中使用EasyExcel工具类,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
常用的Java框架有哪些
1。SpringMVC, Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级网络框架。2。Shiro, Apache Shiro是Java的一个安全框架。3。Mybatis, Mybatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架.4.Dubbo,达博是一个分布式服务框架.5.Maven, Maven是个项目管理和构建自动化工具.6.RabbitMQ, RabbitMQ是用Erlang实现的一个高并发高可靠AMQP消息队列服务器1:8)。Ehcache, Ehcache是一个纯Java的进程内缓存框架。
- <李>
StudentVo为实体类,注意实体中的各个属性要和excel按顺序一一对应,建议都用字符串类型,真正插入时,才去做转换
李> <李>ImportExcelListener类为真正处理数据的类
李> <李>CommonService只是一个Spring bean的服务,用来执行豆腐操作
李>, private CommonService CommonService; ,,,public void importExcel (MultipartFile 文件),throws IOException { ,,,//,HEAD_ROW_NUMBER为Excel中的头部行数,,这里的关于ImportExcelListener的构造方法中HEAD_ROW_NUMBER参数可以根据需要决定传或者不传 ,,,,,,,EasyExcel.read (file.getInputStream (),, StudentVo.class,, new ImportExcelListener(HEAD_ROW_NUMBER, commonService)) .sheet () .headRowNumber (HEAD_ROW_NUMBER) .doRead (); ,,,}
ImportExcelListener类如下,这里根据实际需要,可以不用泛型。
public class ImportExcelListener, extends AnalysisEventListener , { ,,,,,,,/* * ,,,,,,,,*,每隔BATCH_COUNT条存储数据库,然后清理list ,方便内存回收 ,,,,,,,*/,,,,,,,private static final int BATCH_COUNT =, 500; ,,,,,,,private int headRowNum; ,,,,,,,private CommonService commonService; ,,,,,,,private List , list =, new ArrayList<在(); ,,,,,,,public ImportExcelListener (int headRowNumber, CommonService commonService), { ,,,,,,,,,,,this.headRowNum =, headRowNumber; ,,,,,,,,,,,this.commonService =, commonService; ,,,,,,,} ,,,,,,,/* * ,,,,,,,,*,这个每一条数据解析都会来调用 ,,,,,,,*/,,,,,,@Override ,,,,,,,public void 调用(T 数据,AnalysisContext 上下文),{ ,,,,,,,,,,,//,这里也可以将数据转为对应实体,,然后做一些参数校验 ,,,,,,,,,,,Integer rowNum =, context.readRowHolder () .getRowIndex (); ,,,,,,,,,,log.info(“当前解析的数据为第{}行“,,rowNum); ,,,,,,,,, ,,,,,,,,,,,list.add(数据); ,,,,,,,,,,,//,批量保存,,防止一次性数据过多,,内存溢出 ,,,,,,,,,,,if (list.size(),在=,BATCH_COUNT), { ,,,,,,,,,,,,,,,//,保存 ,,,,,,,,,,,,,,,commonService.save(列表); ,,,,,,,,,,,,,,,list.clear (); ,,,,,,,,,,,} ,,,,,,,} ,,,,,,,//,在解析之后,,也要记得再判断是否为空,,不为空要保存一下 ,,,,,,@Override ,,,,,,,public void doAfterAllAnalysed (AnalysisContext 上下文),{ ,,,,,,,,,,,if (CollectionUtils.isEmpty(列表),{ ,,,,,,,,,,,,,,,返回; ,,,,,,,,,,,} ,,,,,,,,,,,commonService.save(列表); ,,,,,,,,,,,list.clear (); ,,,,,,,} null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null 如何在Java中使用EasyExcel工具类