首页 > 编程知识 正文

vba1004错误(easyexcel异常类_Java EasyExcel读取Excel数据转换等异常处理示例代码)

时间:2023-05-04 11:40:59 阅读:123480 作者:4502

1例外处理代码

只需用侦听器重写onException方法即可。 //*

*转换异常获取其他异常调用本接口。 抛出异常时停止读取。 如果不在此抛出异常,则继续读取下一行。

*

* @param exception

* @ param上下文

* @throws Exception

*/

@Override

publicvoidonexception (执行执行,分析上下文上下文) {

LOGGER.error ('分析失败,但以下行中的:{}、exception.getMessage ) );

//如果是某个单元的转换异常,则得到具体的行号

//想要获取头部信息,与invokeHeadMap配合使用

扩展防毒墙群件版数据转换器(if ) {

exceldataconvertexceptionexceldataconvertexception=(exceldataconvertexception ) exception;

LOGGER.error (第行、第列分析异常)、exceldataconvertexception.get rowindex )、

exceldataconvertexception.getcolumn index (

}

}

监听程序的完整代码://有一个重点。 DemoExceptionListener无法通过spring管理。 每次导入excel时,都可以请求new,然后在中使用spring构建并传递方法

publicclassdemoexceptionlistenerextendsanalysiseventlistener {

privatestaticfinalloggerlogger=logger factory.getlogger (demodatalistener.class;

//*

*每隔五个数据库存储一次,实际使用3000个,然后清理list,以便于内存回收

*/

私密性staticfinalintbatch _ count=5;

列表列表=new ArrayList (;

//*

*假设这是刁钻。 当然有商业逻辑。 这个也可以服务。 当然,如果不保存这个对象就没用了。

*/

私密演示道演示道;

公共调制解调器

//这里是demo,所以随便一个新闻。 实际使用spring后,请使用以下带参数的构造函数

demoDAO=new DemoDAO (;

}

//*

如果使用spring,请使用此生成方法。 每次创建监听器时,都必须传递spring管理的类

*

* @param demoDAO

*/

公共调制解调器(调制解调器) {

this.demoDAO=demoDAO;

}

//*

*转换异常获取其他异常调用本接口。 抛出异常时停止读取。 如果不在此抛出异常,则继续读取下一行。

*

* @param exception

* @ param上下文

* @throws Exception

*/

@Override

publicvoidonexception (执行执行,分析上下文上下文) {

LOGGER.error ('分析失败,但以下行中的:{}、exception.getMessage ) );

//如果是某个单元的转换异常,则得到具体的行号

//想要获取头部信息,与invokeHeadMap配合使用

扩展防毒墙群件版数据转换器(if ) {

exceldataconvertexceptionexceldataconvertexception=(exceldataconvertexception ) exception;

LOGGER.error (第行、第列分析异常)、exceldataconvertexception.get rowindex )、

exceldataconvertexception.getcolumn index (

}

}

//*

*调用此所有数据分析

*

* @param data

* onerowvalue.isissameas { @ linkanalysiscontext # readrowholder (}

* @ param上下文

*/

@Override

公共语音邀请(demodatadata,analysis上下文) {

解析为logger.info(1个数据:{} )、JSON.tojsonstring(data );

达到BATCH_COUNT后,需要保存一次数据库,使数万条数据不在内存中,容易进行OOM

if(list.size(=batch_count ) ) )

保存数据(;

//已完成存储清理的列表

list.clear (;

}

}

2实体对象@Data

公共类执行演示数据{

//*

*毫无疑问,按日期接收字符串

*/

私人日期;

}

3测试代码执行/**

*数据转换等异常处理

*

*

*1.创建与excel对应的实体对象引用{@link ExceptionDemoData}

*

* 2.默认情况下异步读取excel,因此必须为引用{@link DemoExceptionListener}的excel创建一行一行的回调侦听器

*

* 3.直接读就行了

*/

@Test

公共语音执行读取(

string filename=test file util.getpath (' demo ' file.separator ' demo.xlsx ';

//这里需要指定用哪个class读取,读取第一个sheet

easyexcel.read(filename,ExceptionDemoData.class,new DemoExceptionListener ().sheet ) ).doRead );

}

相关文档:

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。