easyexcel 导入指定_阿里巴巴EasyExcel使用(3)-导入
/*** 读取转换异常
**/
public class DemoExceptionListener extends AnalysisEventListener{private static final Logger LOGGER = LoggerFactory.getLogger(DemoExceptionListener.class);/*** 每隔5条存储数据库,实际使用中可以3000条,然后清理list ,方便内存回收*/
private static final int BATCH_COUNT = 5;
List list = new ArrayList();//定义接收异常
private StringBuffer errorMsg;/*** 在转换异常 获取其他异常下会调用本接口。抛出异常则停止读取。如果这里不抛出异常则 继续读取下一行。
*
*@paramexception
*@paramcontext
*@throwsException*/@Overridepublic voidonException(Exception exception, AnalysisContext context) {
LOGGER.error("解析失败,但是继续解析下一行:{}", exception.getMessage());//如果是某一个单元格的转换异常 能获取到具体行号//如果要获取头的信息 配合invokeHeadMap使用
if (exception instanceofExcelDataConvertException) {
ExcelDataConvertException excelDataConvertException=(ExcelDataConvertException)exception;
LOGGER.error("第{}行,第{}列解析异常,数据为:{}", excelDataConvertException.getRowIndex(),
excelDataConvertException.getColumnIndex(), excelDataConvertException.getCellData());
String msg="第"+excelDataConvertException.getRowIndex()+"行,第"+excelDataConvertException.getColumnIndex()+"列解析异常,数据为:"+
excelDataConvertException.getCellData();
if(errorMsg==null){
errorMsg=new StringBuffer();
}
//拼接报错信息errorMsg.append(msg).append(System.lineSeparator());
}
}/*** 这里会一行行的返回头
*
*@paramheadMap
*@paramcontext*/@Overridepublic void invokeHeadMap(MapheadMap, AnalysisContext context) {
LOGGER.info("解析到一条头数据:{}", JSON.toJSONString(headMap));
}
@Overridepublic voidinvoke(ExceptionDemoData data, AnalysisContext context) {
LOGGER.info("解析到一条数据:{}", JSON.toJSONString(data));if (list.size() >=BATCH_COUNT) {//操作数据之前统一判断异常信息,可以直接抛异常
if (errorMsg != null && errorMsg.length() > 0) {
// throw new RuntimeException("解析数据异常!!信息:"+errorMsg.toString());
LOGGER.error("解析数据异常!!信息:" +errorMsg.toString());
}
saveData();
list.clear();
}
}
@Overridepublic voiddoAfterAllAnalysed(AnalysisContext context) {操作数据之前统一判断异常信息
/*if (errorMsg != null && errorMsg.length() > 0) {
// throw new RuntimeException("解析数据异常!!信息:"+errorMsg.toString());
LOGGER.error("解析数据异常!!信息:" + errorMsg.toString());
}else{
LOGGER.info("所有数据解析完成!");
//解析完成无错误保存数据
saveData();
}*/}/*** 加上存储数据库*/
private voidsaveData() {
LOGGER.info("{}条数据,开始存储数据库!", list.size());
LOGGER.info("存储数据库成功!");
}
}
easyexcel 导入指定_阿里巴巴EasyExcel使用(3)-导入相关推荐
- java 导入 证书_如何把安全证书导入到java中的cacerts证书库
在项目开发中,有时会遇到与SSL安全证书导入打交道的,如何把证书导入java中的cacerts证书库呢? 其实很简单,方法如下: 每一步:进入某个https://www.xxx.com开头的网站,把要 ...
- easyexcel工具类_阿里巴巴程序员常用的 15 款开发者工具
从人工到自动化,从重复到创新,技术演进的历程中,伴随着开发者工具类产品的发展. 阿里巴巴将自身在各类业务场景下的技术积淀,通过开源.云上实现或工具等形式对外开放,本文将精选了一些阿里巴巴的开发者工具, ...
- easyexcel 设置标题_使用easyexcel完成复杂表头及标题的导出功能(自定义样式)
如需客户端指定excel版本,只需要判断后缀名然后在controller中的.excelType(ExcelTypeEnum.XLS)做指定输出内容格式即可 ***(注意表格行高列宽统一设置是在实体类 ...
- easyexcel 默认表头_使用easyexcel导出多表头excel文件
多表头的model package com.souche.financial.report.model.eo; import com.alibaba.excel.annotation.ExcelPro ...
- impdp导入指定表 oracle_Oracle expdp/impdp导出导入命令及数据库备份(转)
使用EXPDP和IMPDP时应该注意的事项: EXP和IMP是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用. EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用, ...
- impdp导入指定表 oracle_oracle 11g 将表导入到其他用户的impdp命令
/*分为四步 */ /*第1步:创建临时表空间 */ create temporary tablespace yuhang_temp tempfile 'D:\oracledata\yuhang_t ...
- python模块如何导入解释器_无法从嵌入式解释器导入内置模块(仅限Windows)
这个问题看起来可能是一个重复的问题 但我认为我的问题是不同的.我正在从一个MSVC编译的C++应用程序运行Python 3.4解释器,并且我尝试使用PTVSD模块来调试更容易.到目前为止,我已经能够连 ...
- 我的世界Java存档转移_我的世界怎么导入本地地图_我的世界中国版怎么导入地图_我的世界怎么导入存档...
为了让这些与<我的世界>一同成长的国内玩家.更加方便地在中国版游戏中继续此前的"世界",<我的世界>中国版在PC Java版不删档测试中推出了贴心的&quo ...
- 新点软件怎么导入清单_表格软件excel怎样导入数据 | 新点软件怎么导入excel清单表格 表格有什么要求???...
新点软件怎么导入excel清单表格 表格有什么要求??? 没有特别的要求. 导入EXCEL实要引入POI包,这是专门操excel的 poi 提供的只是对应的excel操作方法,要完成一个任务,自己想办 ...
最新文章
- Robocopy是微软Windows Server 2003资源工具包中众多多用途的实用程序之一(它是基于强大的拷贝程序...
- windows上安装gcc/g++环境(MinGW,msys64等)
- linux—用nc命令监控检测服务器端口
- SAP Fiori 应用里图标(Icon)的渲染原理和使用技巧
- listview嵌套gridview
- char 与 String 相等比较
- 关掉内核线程linux,c – 如何在rmmod上停止Linux内核线程?
- kali linux 桌面消失_Kali Linux添加桌面快捷方式
- silverlight 3 blend3最新版本 破解方法
- [SQl读书笔记]§6.Transact-SQL(4)
- 阶段2 JavaWeb+黑马旅游网_15-Maven基础_第1节 基本概念_01maven概述
- Java基础案例教程pdf,圆我大厂梦!
- 综述-自动驾驶中基于图像的3D目标检测
- python常用标准库
- java web程序课后答案_JavaWeb程序设计教程课后练习答案【参考】.doc
- slack 聊天机器人_无法筹集资金的Slack机器人
- Asp.net学习资料
- OneNote2016电脑端修改笔记本名称网页端不同步解决办法
- Android音频焦点及混音策略
- 电脑计算机管理看AHCI,怎么将电脑硬盘模式修改为ahci模式?
热门文章
- Waymo真·无人车上路了!没司机的出租车推出在即 | 多图实拍
- Cocos2d-X开发中国象棋《三》開始场景的实现
- Linux系统下如何实现文件系统配额
- ORA-12504:TNS:监听程序在CONNECT_DATA中未获得SERVICE_NAME
- WindowsXP下搭建GIT服务器
- 深入理解typedef
- terminateActivity
- 微信测试公众号-jssdk基本配置和使用-thinkphp
- 低微漏洞处理办法记录
- 6.4. Pirum is a simple PEAR Channel Server Manager