Closed LiArun closed 1 month ago
It looks like there might be a problem with the file. I recommend specifying the excelType
and trying again.
看上去似乎是文件有问题。建议指定excelType后再试一下。
该文件似乎有问题。我建议指定
excelType
并重试。看来是文件有问题。建议指定excelType后再试一下。
ExcelTypeEnum excelType = ExcelTypeEnum.XLSX;
if (originalFilename.endsWith(".xls")) {
excelType = ExcelTypeEnum.XLS;
}
// 导入数据
EasyExcel.read(inputStream, new ExcelDataListener(redisTemplate, jdbcTemplate, importExcelTaskService)).excelType(excelType).sheet().doRead();
已经指定excelType,报错如下: com.alibaba.excel.exception.ExcelAnalysisException: java.nio.channels.ClosedChannelException at com.alibaba.excel.analysis.ExcelAnalyserImpl.(ExcelAnalyserImpl.java:61) at com.alibaba.excel.ExcelReader.(ExcelReader.java:30) at com.alibaba.excel.read.builder.ExcelReaderBuilder.build(ExcelReaderBuilder.java:214) at com.alibaba.excel.read.builder.ExcelReaderBuilder.sheet(ExcelReaderBuilder.java:251) at com.alibaba.excel.read.builder.ExcelReaderBuilder.sheet(ExcelReaderBuilder.java:239) at com.dzsk.report.system.controller.TESTService.testService(TESTService.java:59) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:751) at org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:115) at java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:264) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.base/java.lang.Thread.run(Thread.java:842) Caused by: java.nio.channels.ClosedChannelException at java.base/sun.nio.ch.FileChannelImpl.ensureOpen(FileChannelImpl.java:159) at java.base/sun.nio.ch.FileChannelImpl.read(FileChannelImpl.java:218) at java.base/sun.nio.ch.ChannelInputStream.read(ChannelInputStream.java:65) at java.base/sun.nio.ch.ChannelInputStream.read(ChannelInputStream.java:107) at java.base/sun.nio.ch.ChannelInputStream.read(ChannelInputStream.java:101) at java.base/java.nio.channels.Channels$ReadableByteChannelImpl.read(Channels.java:387) at org.apache.poi.util.IOUtils.readFully(IOUtils.java:370) at org.apache.poi.poifs.filesystem.POIFSFileSystem.(POIFSFileSystem.java:323) at com.alibaba.excel.analysis.ExcelAnalyserImpl.choiceExcelExecutor(ExcelAnalyserImpl.java:73) at com.alibaba.excel.analysis.ExcelAnalyserImpl.(ExcelAnalyserImpl.java:55) ... 19 more
Having too much business logic can make troubleshooting difficult. I recommend starting with the simplest demo to verify if it reads correctly, and then gradually adding other code.
太多的业务代码会影响排查。我建议使用最简单的demo来检查是否能够正常读取。然后再一步步加上其他的代码。
建议先去看文档
快速开始 、常见问题
异常代码
异常提示
Convert excel format exception.You can try specifying the 'excelType' yourself
问题描述
在controller层调用service层的异步方法去导入Excel文件,一直提示上述异常,不知是否本人使用错误,望指教。