JXLS 未将变量写入 Excel 输出文件

问题描述 投票:0回答:1

我是 JXLS 新手,正在尝试像本教程中那样执行他们的 Hello World,但我得到的是空白输出而不是已处理的变量。

了解我情况的步骤:

  1. 使用 Maven 打开一个新的 java 项目

  2. 添加这些必需的依赖项:

    <dependency> <groupId>org.jxls</groupId> <artifactId>jxls</artifactId> <version>3.0.0</version> </dependency> <dependency> <groupId>org.jxls</groupId> <artifactId>jxls-poi</artifactId> <version>3.0.0</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.23.1</version> </dependency> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.3.1</version> </dependency>
    
    
  3. 创建一个名为

    object_collection_template.xlsx”的 Excel 文件

  4. 将此文本作为 Excel 注释添加到单元格 A1:

    Author: jx:area(lastCell="D4")

    
    

  5. 将此文本作为 Excel 注释添加到单元格 A4:

    Author: jx:each(items="employees" var="employee" lastCell="D4")

    
    

  6. 文件的最终内容是:

  7. 有这个java代码:

    public class Main { public static void main(String[] args) { List<Test> users = new ArrayList<>(); //userRepository.findAll(); for (int i = 0; i < 5; i++) { users.add(new Test((i + 1), "login-" + (i + 1), "password " + "-" + (i + 1))); } try { Map<String, Object> data = new HashMap<>(); data.put("employees", users); JxlsPoiTemplateFillerBuilder.newInstance() .withTemplate("object_collection_template.xlsx") .build() .fill(data, new JxlsOutputFile(new File("result_object_collection_template.xlsx")) ); } catch (Exception e) { throw new RuntimeException(e); } System.out.println(); }
    静态类测试{
    整数ID;
    字符串登录;

    String password; public Test(int id, String login, String password) { this.id = id; this.login = login; this.password = password; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getLogin() { return login; } public void setLogin(String login) { this.login = login; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; }
    }
    }

我得到的输出:

如您所见,迭代与列表的大小(5 个元素)完全相同,但第一列和第二列中都没有输出,因为这两列使用官方文档中提供的语法:

${variable.thatShouldBePrinted}

 .

问题是: 为了在这两列(id 和登录)中获得正确的输出,我缺少什么?

我尝试了什么

    仔细阅读文档以查找我是否遗漏了某些内容,特别是在模板配置中。
  1. 在模板中使用不同的可能语法
  2. 在互联网上搜索此问题(或类似问题)
  3. 使用不同版本的库
但是上述任何一点都没有帮助我,所以我将非常感谢任何可以帮助我摆脱这个问题的人。

java excel apache-poi jxls
1个回答
0
投票
如果有人遇到这种情况:我找到了解决方案。问题是因为内部静态类

Test

。当我将它移到一个单独的文件中时,现在一切正常了。

© www.soinside.com 2019 - 2024. All rights reserved.