读取xlsb文件时抛出错误-java poi
我正在尝试使用Apache POI并获得以下异常: 线程“main”java.lang.IllegalAccessError中出现异常:试图从类org.apache.poi.xssf.eventusermodel.XSSFReader.pkg访问字段org.apache.poi.xssf.eventusermodel.XSSFBReader 位于org.apache.poi.xssf.eventusermodel.XSSFBReader.getXSSFBStylesTable(XSSFBReader.java:78) 位于org.apache.poi.xssf.extractor.XSSFBEventBasedExcelExtractor.getText(XSSFBEventBasedExcelExtractor.java:122) 位于xlsbpar.xlsbpar.main(xlsbpar.java:38) 这是我的密码:读取xlsb文件时抛出错误-java poi,java,apache-poi,illegalaccessexception,xlsb,Java,Apache Poi,Illegalaccessexception,Xlsb,我正在尝试使用Apache POI并获得以下异常: 线程“main”java.lang.IllegalAccessError中出现异常:试图从类org.apache.poi.xssf.eventusermodel.XSSFReader.pkg访问字段org.apache.poi.xssf.eventusermodel.XSSFBReader 位于org.apache.poi.xssf.eventusermodel.XSSFBReader.getXSSFBStylesTable(XSSFBRead
XSSFBEventBasedExcelExtractor ext = null;
try {
ext = new XSSFBEventBasedExcelExtractor("C:\\Users\\name\\Desktop\\abc.xlsb");
System.out.println(ext.getText());
} catch (Exception ex) {
System.out.println(ex.getMessage());
}
您需要使用
XSSFEventBasedExcelExtractor
(需要poi-ooxml-x.y.jar
作为外部库,其中x.y表示版本),因为错误本身声明:
试图访问字段org.apache.poi.xssf.eventusermodel.XSSFReader.pkg
来自classorg.apache.poi.xssf.eventusermodel.XSSFBReader
此外,您可能希望检查OP在何处使用了几乎相似的代码,只需稍加添加即可获得所需的结果。下面的代码片段非常适合XLSB解析
@AM_I_help建议如果我使用XSSFEventBasedExcelExtractor,我需要用xlsb格式解析文件,它将为语句sop(ext.getText())提供null,即使在将ext更改为XSSFBEventBasedExcelExtractor后,错误仍然存在same@saran-检查此问题->;OP能够成功读取数据。你应该试一试!如果有任何进一步的查询,请随意询问。我开始使用收到相同错误的代码段编写代码。我的目标是读取和访问xlsb文件中的数据,我正试图使用apache poi 3.16执行此操作,但不幸的是,我收到了此错误。当我在单独的java文件中尝试该代码段时,问题得到了解决。不过,在我的项目(NoSuchFieldError)java.lang.NoSuchFieldError中,我面临以下错误:原始XML文件头谢谢兄弟!不要在不同版本之间混用罐子!你需要在同一个版本上安装所有POI JAR,它才能正常工作!我排除了ApachePOI的前一个版本,但我忘了删除我根本没有使用的ApacheTika库。删除Apache Tikka的引用后,问题立即得到解决
XSSFEventBasedExcelExtractor ext = null;
try {
ext = new XSSFEventBasedExcelExtractor("C:\\Users\\name\\Desktop\\abc.xlsb");
System.out.println(ext.getText());
} catch (Exception ex) {
System.out.println(ex.getMessage());
}