gpt4 book ai didi

java - Spring,JXLS : XLS transformer not loaded,,即使依赖存在。

转载 作者:行者123 更新时间:2023-11-29 10:00:11 25 4
gpt4 key购买 nike

我正在尝试 JXLS这是一个 Java 库,用于创建 excel 文件,以及在 Spring-MVC 项目中使用它进行的其他操作。当我尝试使用一些数据创建 excel 文件时,出现以下错误:

错误日志:

java.lang.IllegalStateException: Cannot load XLS transformer. Please make sure a Transformer implementation is in classpath
at org.jxls.util.JxlsHelper.createTransformer(JxlsHelper.java:200)
at org.jxls.util.JxlsHelper.processTemplateAtCell(JxlsHelper.java:118)
at com.journaldev.spring.service.GroupNotesServiceImpl.saveGroupNotesToExcel(GroupNotesServiceImpl.java:917)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)

代码:

   @Override
public void saveGroupNotesToExcel(int msectionid){
List<GroupNotes> groupNotesList = this.groupNotesDAO.listGroupNotesBySectionId(msectionid);
try(InputStream is = GroupNotesServiceImpl.class.getResourceAsStream("/home/path/to/jls/test.xls")) {
try (OutputStream os = new FileOutputStream("/home/path/to/jls/output.xls")) {
Context context = new Context();
context.putVar("groupNotesList", groupNotesList);
JxlsHelper.getInstance().processTemplateAtCell(is, os, context, "Result!A1");
}catch (Exception e){
e.printStackTrace();
}
}catch (Exception e){
e.printStackTrace();
}
}

这是我的 POM.xml 和依赖项:

  <!-- Excel dependencies-->
<dependency>
<groupId>org.jxls</groupId>
<artifactId>jxls</artifactId>
<version>2.2.8</version>
</dependency>

<dependency>
<groupId>org.jxls</groupId>
<artifactId>jxls-poi</artifactId>
<version>1.0.7</version>
</dependency>
<dependency>
<groupId>org.jxls</groupId>
<artifactId>jxls-jexcel</artifactId>
<version>1.0.4</version>
</dependency>

<dependency>
<groupId>org.jxls</groupId>
<artifactId>jxls-reader</artifactId>
<version>2.0.1</version>
</dependency>

我在网上检查了其他答案,但只有 1 个缺少依赖项,我已经有了。这里出了什么问题?

最佳答案

无论出于何种原因,我遇到的问题是无法将资源作为流获取。它总是返回 null。

更改我的代码以获得输入流解决了我的问题:

URL fileResource = this.getClass().getClassLoader().getResource("MyTemplate.xlsx");

File file = new File(fileResource.toURI());

InputStream is = new FileInputStream(file);

如果这不能解决您的问题,我的建议是调试 jxls 代码并查看它返回 null 的位置,并确保此时其他输入都不为 null。这个错误只是意味着无法构建有效的转换器,而不是类路径上不存在转换器。我不知道他们为什么将异常(exception)情况如此误导。

关于java - Spring,JXLS : XLS transformer not loaded,,即使依赖存在。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34990152/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com