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相关推荐

  1. JAVA使用POI操作Excel表,XSSF(xlsx)和HSSF(xls)

    JAVA使用POI操作Excel表,XSSF(xlsx)和HSSF(xls) *** POI的结构: ---*HSSF - 提供读写Microsoft Excel格式档案的功能. ---*XSSF - ...

  2. java使用XSSF设置页眉页脚及打印样式

    需求背景 有报表,就抛不开打印的需求.原本打印功能都是由前端实现,包括了打印标题.页眉页脚.标题行等功能.随着需求越来越多,前端不干了,跟领导反馈实现了一个功能,引发了若干bug(会哭的孩子有奶喝). ...

  3. 记一次悲惨的 Excel 导出事件

    背景 话说这个背景挺惨的,京东某系统使用了poi-ooxml-3.5-final做excel导出功能.起初使用该版本的poi的HSSF配合多线程生成excel,没有任何问题,后来改成了XSSF生成后上 ...

  4. 【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 ...

  5. NPOI操作Excel

    Npoi 简介 1.整个Excel表格叫做工作表:WorkBook(工作薄),包含的叫页(工作表):Sheet:行:Row:单元格Cell. 2.Npoi 下载地址:http://npoi.codep ...

  6. java excel 操作 poi_Java使用apache poi进行excel相关操作

    一.基本介绍 1.1.Apache POI介绍 Apache POI是一个可以进行微软的文档进行开源库,可以操作的文档类型包括word.ppt.excel.visio.outlook.... 本文主要 ...

  7. excel npoi 连接_Net操作Excel_NPOI(示例代码)

    Npoi 简介 1.整个Excel表格叫做工作表:WorkBook(工作薄),包含的叫页(工作表):Sheet:行:Row:单元格Cell. 4.忘了告诉大家npoi是做什么的了,npoi 能够读写几 ...

  8. selenium java po模式_selenium + java po模式

    po模式大概介绍,大家也可以自己百度看看 Page Object模式主要是将每个页面设计为一个类class,这个类包含页面中需要测试的元素(按钮.输入框.URL.标题等)和实际操作方法,这样在写测试用 ...

  9. Java面试poi中excel版本大小_java 中 poi解析Excel文件版本问题解决办法

    java 中 poi解析Excel文件版本问题解决办法 发布时间:2020-10-02 03:46:15 来源:脚本之家 阅读:91 作者:程诺 poi解析Excel文件版本问题解决办法 poi解析E ...

最新文章

  1. mongo在哪创建管理员_mongodb权限设置之添加管理员、普通用户的方法
  2. KMP算法具体解释(转)
  3. android 自定义扫地机器人地图,扫地机如何正确操作进行APP建图?
  4. 100行php代码实现加密端口转发
  5. 第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(昆明) AC(带悔贪心)
  6. [Hnoi2013]消毒
  7. ansible callbacks
  8. [译]Go语言常用文件操作汇总
  9. Exception in thread main java.lang.NoClassDefFoundError解决了
  10. 经典曲线特征提取方法总结1
  11. hdu 1423(LCS+LIS)
  12. sqlserver、mysql删除重复数据
  13. c语言写的fft程序,C语言编写FFT程序.pdf
  14. 饥荒服务器显示APPID,Steam饥荒
  15. el-table使用span-method合并行
  16. 计算机临时保存信息,Windows临时文件夹是什么,Windows临时文件夹保存位置在哪里?...
  17. 杨浦区服务器维修,上海杨浦区dns服务器地址
  18. 英语语法快速入门4--定语与定语从句(附思维导图)
  19. 好书推荐|VirtualLab Fusion入门与进阶实用教程(第二版)
  20. android dy 完结篇(0x3)

热门文章

  1. Unity导出Android工程
  2. 【硬件相关】Pull-up and Pull-down Resistors
  3. Kali-Linux-2021.1 root登录
  4. Camera Link协议和FPGA的数字图像信号源设计
  5. 关于ip地址 :局域网 广域网 ip 公网 私网 ipv6 ipv4的区别、hosts文件和DNS域名解析说明
  6. A、B、AB和D类功放对比
  7. 可以免费自学编程的12个网站,各种资料齐全!
  8. 如何抓住蝴蝶效应中的那只蝴蝶
  9. tlb cache操作系统地址翻译
  10. Atmel Studio6.0 下atmega88的调试和仿真