调用Apache POI的POIXMLDocument.write()方法后抛出异常。我尝试了IcedTea和OpenJDK java8,得到了相同的结果。下面是堆栈跟踪。任何帮助都将不胜感激!
org.apache.poi.util.XMLHelperW SAX功能不支持log suppressed for 5 minutes java.lang.IllegalArgumentException: TransformerFactory无法识别属性'http://javax.xml.XMLConstants/property/accessExternalSchema'‘。在com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl.setAttribute(TransformerFactoryImpl.java:471)在org.apache.poi.util.XMLHelper.trySet(XMLHelper.java:280)在org.apache.poi.util.XMLHelper.getTransformerFactory(XMLHelper.java:222)在org.apache.poi.util.XMLHelper.newTransformer(XMLHelper.java:227)在org.apache.poi.openxml4j.opc.StreamHelper.saveXmlInStream(StreamHelper.java:56)在org.apache.poi。openxml4j.opc.internal.ZipContentTypeManager.saveImpl(ZipContentTypeManager.java:69)在org.apache.poi.openxml4j.opc.internal.ContentTypeManager.save(ContentTypeManager.java:452)在org.apache.poi.openxml4j.opc.ZipPackage.saveImpl(ZipPackage.java:520)在org.apache.poi.openxml4j.opc.OPCPackage.save(OPCPackage.java:1514)在org.apache.poi.ooxml.POIXMLDocument.write(POIXMLDocument.java:227)
发布于 2021-05-07 22:33:54
我修好了。
由于某些原因,如果我调用System.setProperty("org.apache.poi.util.POILogger","org.apache.poi.util.SystemOutLogger“);在尝试编写文档之前,它会失败。我删除了那行(旧的)代码,现在一切正常。
发布于 2021-12-02 05:16:44
一个对我有效的解决方案(只是阻止输出警告消息):
// block poi 5.1.0 outputting '... accessExternalSchema' WARN msg
// (https://bz.apache.org/bugzilla/show_bug.cgi?id=65326)
static {
org.apache.logging.log4j.core.config.Configurator.setLevel("org.apache.poi.util.XMLHelper", Level.ERROR);
}
:
Workbook workbook = WorkbookFactory.create(excelFile, null, true);
:https://stackoverflow.com/questions/67424945
复制相似问题