在运行创建XSSFWorkbook的项目/代码时,系统失败,未找到类定义错误 org.openxmlformats.schemas.spreadsheetml.x2006.main.CTFileRecoveryPr
我也有所有poi 3.9罐子和它的先决条件罐子。
有趣的是,相同的项目/代码在我朋友的系统上正常运行。
该项目是一个基于RAD的JSF 1.2项目。
它可以与我系统上的MS office安装套件相关吗?另外,为什么在工作簿创建期间调用类,无法在任何地方找到任何文档。
请帮助解决问题,因为我无法继续测试项目。
答案 0 :(得分:0)
要使用新的OOXML文件格式,POI需要一个包含XMLBeans编译的文件格式XSD的jar。这些XSD一旦编译成Java类,就会存在于org.openxmlformats.schemas命名空间中。
有两个jar文件可用,如组件概述部分所述。所有模式的完整jar都是ooxml-schemas-1.1.jar,目前大约是15mb。较小的poi-ooxml-schemas jar只有4mb左右。后一个jar文件只包含通常使用的部分。
许多用户选择使用较小的poi-ooxml-schemas jar来节省空间。但是,poi-ooxml-schemas jar只包含通常使用的XSD和类,如单元测试所标识的那样。每隔一段时间,您可能会尝试使用最小的poi-ooxml-schemas jar中不包含的部分文件格式。在这种情况下,您应该切换到完整的ooxml-schemas-1.1.jar。从长远来看,您可能还希望提交一个新的单元测试,该测试使用XSD的额外部分,以便将来的poi-ooxml-schemas jar包含它们。
因此,从短期来看,您只需要从poi-ooxml-schemas
jar切换到更大(和完整)ooxml-schemas
jar。从长远来看,您需要向使用所需CT类的Apache POI项目提交junit测试,然后该类将在未来版本中自动包含在较小的poi-ooxml-schemas
jar中。