В jXLS 1+ я использую шаблоны .XLSX и выходные файлы; это работает хорошо. А вот в Jxls 2+ нет. Поэтому я подготовил шаблон и переписал код. Если я использую .XLS, он работает хорошо, если я меняю шаблон на .XLSX, он выдает:
2018-06-26 11:56:33,827 ERROR [main] TransformerFactory - Method createTransformer of org.jxls.transform.poi.PoiTransformer class thrown an Exception
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.jxls.util.TransformerFactory.createTransformer(TransformerFactory.java:35)
at org.jxls.util.JxlsHelper.createTransformer(JxlsHelper.java:381)
at org.jxls.util.JxlsHelper.processTemplate(JxlsHelper.java:173)
...
Caused by: java.lang.ClassNotFoundException: org.openxmlformats.schemas.spreadsheetml.x2006.main.StyleSheetDocument$Factory
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 25 more
2018-06-26 11:56:33,830 ERROR [main] ExcelBuilder - Cannot load XLS transformer. Please make sure a Transformer implementation is in classpath
java.lang.IllegalStateException: Cannot load XLS transformer. Please make sure a Transformer implementation is in classpath
at org.jxls.util.JxlsHelper.createTransformer(JxlsHelper.java:383)
at org.jxls.util.JxlsHelper.processTemplate(JxlsHelper.java:173)
...
Похоже, что либо нет поддержки .XLSX, либо мне нужна еще одна библиотека.