eg XSSF instead of HSSF
JAVA在处理Excel的时候报错:
org.apache.poi.poifs.filesystem.OfficeXmlFileException: The supplied data appears to be in the Office 2007+ XML. You are calling the part of POI that deals with OLE2 Office Documents. You need to call a different part of POI to process this data (eg XSSF instead of HSSF)at org.apache.poi.poifs.storage.HeaderBlock.<init>(HeaderBlock.java:130)at org.apache.poi.poifs.storage.HeaderBlock.<init>(HeaderBlock.java:117)at org.apache.poi.poifs.filesystem.POIFSFileSystem.<init>(POIFSFileSystem.java:285)at com.fpi.imain.serviceImpl.OthersServiceImpl.importMaintainResult(OthersServiceImpl.java:1013)at com.fpi.imain.controller.OthersController.importMaintainResult(OthersController.java:152)at com.fpi.imain.controller.OthersController$$FastClassBySpringCGLIB$$8bc45949.invoke(<generated>)at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:720)at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)at org.springframework.aop.framework.adapter.MethodBeforeAdviceInterceptor.invoke(MethodBeforeAdviceInterceptor.java:52)at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)at org.springframework.aop.framework.adapter.AfterReturningAdviceInterceptor.invoke(AfterReturningAdviceInterceptor.java:52)at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:655)at com.fpi.imain.controller.OthersController$$EnhancerBySpringCGLIB$$876f6c41.importMaintainResult(<generated>)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)at java.lang.reflect.Method.invoke(Unknown Source)at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:221)at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:110)at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:817)at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:731)at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:959)at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893)at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:968)at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:870)at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:844)at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:121)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624)at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:341)at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:783)at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:798)at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1441)at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)at java.lang.Thread.run(Unknown Source)
很久以前也遇到过这个版本兼容的问题,度娘上的处理也比较一致:
XSSFWorkbook workbook = new XSSFWorkbook(inp);
替换掉原来的
HSSFWorkbook workbook = new HSSFWorkbook(inp);
或者就是考虑兼容03和03以上版本的处理:
boolean is03Excel = fileName.matches("^.+\\.(?i)(xls)$");
FileInputStream inputStream = new FileInputStream(fileName);
Workbook wb = is03Excel ? new HSSFWorkbook(inputStream) : new XSSFWorkbook(inputStream);
但是我发现我居然找不到XSSF相关的类…
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi --><dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>4.1.2</version></dependency>
尝试了几个低版本的也是一样,找不到XSSF相关的所有,原来是还需要引入一个依赖:
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
<dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>4.1.2</version>
</dependency>
问题解决了!
eg XSSF instead of HSSF相关推荐
- JAVA使用POI操作Excel表,XSSF(xlsx)和HSSF(xls)
JAVA使用POI操作Excel表,XSSF(xlsx)和HSSF(xls) *** POI的结构: ---*HSSF - 提供读写Microsoft Excel格式档案的功能. ---*XSSF - ...
- java使用XSSF设置页眉页脚及打印样式
需求背景 有报表,就抛不开打印的需求.原本打印功能都是由前端实现,包括了打印标题.页眉页脚.标题行等功能.随着需求越来越多,前端不干了,跟领导反馈实现了一个功能,引发了若干bug(会哭的孩子有奶喝). ...
- 记一次悲惨的 Excel 导出事件
背景 话说这个背景挺惨的,京东某系统使用了poi-ooxml-3.5-final做excel导出功能.起初使用该版本的poi的HSSF配合多线程生成excel,没有任何问题,后来改成了XSSF生成后上 ...
- 【spring boot】【POI】错误:The supplied data appears to be in the Office 2007+ XML
前言 spring boot 2.1.1.RELEASE poi 5.0.0 错误 Caused by: org.apache.poi.poifs.filesystem.OfficeXmlFileEx ...
- NPOI操作Excel
Npoi 简介 1.整个Excel表格叫做工作表:WorkBook(工作薄),包含的叫页(工作表):Sheet:行:Row:单元格Cell. 2.Npoi 下载地址:http://npoi.codep ...
- java excel 操作 poi_Java使用apache poi进行excel相关操作
一.基本介绍 1.1.Apache POI介绍 Apache POI是一个可以进行微软的文档进行开源库,可以操作的文档类型包括word.ppt.excel.visio.outlook.... 本文主要 ...
- excel npoi 连接_Net操作Excel_NPOI(示例代码)
Npoi 简介 1.整个Excel表格叫做工作表:WorkBook(工作薄),包含的叫页(工作表):Sheet:行:Row:单元格Cell. 4.忘了告诉大家npoi是做什么的了,npoi 能够读写几 ...
- selenium java po模式_selenium + java po模式
po模式大概介绍,大家也可以自己百度看看 Page Object模式主要是将每个页面设计为一个类class,这个类包含页面中需要测试的元素(按钮.输入框.URL.标题等)和实际操作方法,这样在写测试用 ...
- Java面试poi中excel版本大小_java 中 poi解析Excel文件版本问题解决办法
java 中 poi解析Excel文件版本问题解决办法 发布时间:2020-10-02 03:46:15 来源:脚本之家 阅读:91 作者:程诺 poi解析Excel文件版本问题解决办法 poi解析E ...
最新文章
- mongo在哪创建管理员_mongodb权限设置之添加管理员、普通用户的方法
- KMP算法具体解释(转)
- android 自定义扫地机器人地图,扫地机如何正确操作进行APP建图?
- 100行php代码实现加密端口转发
- 第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(昆明) AC(带悔贪心)
- [Hnoi2013]消毒
- ansible callbacks
- [译]Go语言常用文件操作汇总
- Exception in thread main java.lang.NoClassDefFoundError解决了
- 经典曲线特征提取方法总结1
- hdu 1423(LCS+LIS)
- sqlserver、mysql删除重复数据
- c语言写的fft程序,C语言编写FFT程序.pdf
- 饥荒服务器显示APPID,Steam饥荒
- el-table使用span-method合并行
- 计算机临时保存信息,Windows临时文件夹是什么,Windows临时文件夹保存位置在哪里?...
- 杨浦区服务器维修,上海杨浦区dns服务器地址
- 英语语法快速入门4--定语与定语从句(附思维导图)
- 好书推荐|VirtualLab Fusion入门与进阶实用教程(第二版)
- android dy 完结篇(0x3)