poi 3.8生成excel2007时,debug到Workbook wb =new XSSFWorkbook();这一行报错

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了poi 3.8生成excel2007时,debug到Workbook wb =new XSSFWorkbook();这一行报错相关的知识,希望对你有一定的参考价值。

参考技术A 已经告诉你了,找不到spring-webmvc.jar文件,缺少jar包。来自:求助得到的回答 参考技术A 经过百度:
下面是别人的成果。
使用POI库,在实例化XSSFWorkbook对象时(如图2),报 java.lang.ClassNotFoundException: org.apache.xmlbeans.XmlOptions 的错误,经检查,是因为官方包里默认是不包含xmlbean.jar包的,需要自己添加xmlbeans-2.6.0.jar和dom4j-1.6.1.jar这两个包即可。我是解决了希望对你有帮助
参考技术B 楼主,我也报这个错了,找了好久没找到,,您现在解决了嘛?求答案 参考技术C 报什么错误啊??
看这个图没用啊追问

没报什么错...一debug进去就进这个截图页面

追答

debug需要源代码
说明你没有spring-webmvc。jar的源代码
去官网下一个源代码包,然后点attach source按钮,选择下载下来的源码包就行了。这就可以看到源代码

参考技术D poi.jar加了?建议找一个完整的jar

org.apache.poi.ss.usermodel 包可以从多个模块访问:poi、poi.ooxm

【中文标题】org.apache.poi.ss.usermodel 包可以从多个模块访问:poi、poi.ooxm【英文标题】:The package org.apache.poi.ss.usermodel is accessible from more than one module: poi, poi.ooxm 【发布时间】:2019-01-25 09:01:22 【问题描述】:

在此问题的所有参考资料中,它已解决且不提供 maven,因为 notma​​ven 中进行操作。 错误是包org.apache.poi.ss.usermodel 可以从多个模块访问:poi, poi.ooxm 在两个错误中

我必须同时使用 poi 和 poi--ooxml,请运行此代码,我需要使用它。甚至此代码也是从互联网本身中提取的,并且有很多博客都显示了这种类型的代码,这是我的实际要求,但它不起作用。

【问题讨论】:

不要使用模块!只需将它们放在类路径上,而不是模块路径上 Apache POI does not yet fully support the Java 9 module system...as Apache POI currently uses the same package in different jar-files。但这仅仅是原因。我也没有解决办法。至少不使用 Eclipse,因为我没有使用那个 IDE。下一个apache poi 版本4.0 似乎避免了“在不同的jar 文件中使用相同的包”。 那怎么用呢。因为他们都是这个程序的强制要求。解决方案? 从 poi-ooxml - 3.17 切换到 poi-ooxml-4.1.2.jar 为我解决了这个问题。 【参考方案1】:

我遇到了同样的问题并找到了解决方案。这有点晚了,但可能会帮助其他面临同样问题的人。 在您的模块中删除“需要 poi”并保留需要 poi.ooxml;

module com.example.MyModlue 
  //other require statement goes here
   requires poi.ooxml;

现在在你的代码中

代替使用 (CellType.NUMERIC) 导入 org.apache.poi.ss.usermodel.CellType;

获取单元格类型使用 (cell.getCellTypeEnum().NUMERIC) where cell if of type XSSFCell

import org.apache.poi.xssf.usermodel.XSSFCell;

希望这会有所帮助。 :)

【讨论】:

我使用var 类型推断来避免直接引用类型。【参考方案2】:

只需在模块类中将所有库添加到要求中

module MyProjct 
    requires poi;
    requires poi.excelant;
    requires poi.ooxml;
    requires poi.ooxml.schemas;


【讨论】:

【参考方案3】:

如果有人有同样的问题,只需下载新版本的 POI,旧版本与新版本的 java 不兼容

【讨论】:

以上是关于poi 3.8生成excel2007时,debug到Workbook wb =new XSSFWorkbook();这一行报错的主要内容,如果未能解决你的问题,请参考以下文章

poi创建excel时,能插入雷达图和柱形图吗

poi之Excel(在线生成)下载

poi导出excel

JAVA POI 应用系列--生成Excel

poi解析Excel2007海量数据

poi 导出excel2007的时候,自动执行excel中的公式?