Excel 보고서를 생성하기 위해 JXLS Java 라이브러리를 사용하고 있습니다. 샘플 getting started 자습서 (Object collection output demo)를 실행하려고합니다. 자습서에서 제안 된대로 필자는 프로젝트 빌드 파일에 필요한 라이브러리를 지정하기 위해 maven을 사용하고 있습니다. 다음은JXLS를 사용하는 org/apache/poi/openxml4j/exceptions/InvalidFormatException
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/poi/openxml4j/exceptions/InvalidFormatException
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
at java.lang.Class.privateGetMethodRecursive(Unknown Source)
at java.lang.Class.getMethod0(Unknown Source)
at java.lang.Class.getMethod(Unknown Source)
at org.jxls.util.TransformerFactory.createTransformer(TransformerFactory.java:34)
at org.jxls.util.JxlsHelper.createTransformer(JxlsHelper.java:217)
at org.jxls.util.JxlsHelper.processTemplate(JxlsHelper.java:104)
at com.ucas.ObjectCollectionDemo.main(ObjectCollectionDemo.java:42)
Caused by: java.lang.ClassNotFoundException: org.apache.poi.openxml4j.exceptions.InvalidFormatException
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 9 more
자바의 스냅 샷입니다 : 아래는 내가 아래 예외가 내 일식에서 프로그램을 실행하면
List<Employee> employees = generateSampleEmployeeData(); try(InputStream is = ObjectCollectionDemo.class.getResourceAsStream("object_collection_template1.xls")) { try(OutputStream os = new FileOutputStream("target/" + fileName)) { Context context = new Context(); context.putVar("employees", employees); JxlsHelper.getInstance().processTemplate(is, os, context); } }
을 사용하는 자바 코드는 버전 : 1.8
환경 : Windows 7
IDE : 이클립스 네온
필자의 메이븐 저장소를 삭제하고 최소한의 jxls 프로젝트를 만들었습니다. 지금은 잘 작동하고 있습니다. – Sachin
Maven을 사용하지 않는 사람을위한 통찰력을 제공 할 수 있습니까? 나는 에어 갭이있는 시스템에 있고 병을 사용해야한다. – usmcphysicist