1

使用 JXLS 1,可以通过简单的调用在 Excel 模板中进行替换

XLSTransformer.transformXLS(is,beans)

例如,我们有像这样组织的 bean 对象(不太好,好吧..:)):

class Person{
private String name;
private String lastname;
private String tel;
private String gender;
private Integer count;

public Person(String name, String lastname, String telephone, String gender){
this.name = name;
this.lastname = lastname;
this.tel = telephone;
this.gender = gender;
this.count = null;
}

public Person(String gender, int count){
this.gender = gender;
this.count = count;
}
//getters
}

现在,给定这个模板:

模板

和以下初始化:

List<Person> p = Arrays.asList(
new Person(„Johnny“, „Cash“, „1394567“, „M“),
new Person(„Paul“, „Newman“, „234667“, „M“),
new Person(„M“,2),
new Person(„Jessica“, „Alba“, „134566“, „F“),
new Person(„F“,1)
); 

Map<String, List<? extends Object>> beans = new HashMap<String, List<? extends Object>>();
beans.put(„persons“, p);
beans.put(„heading“, Arrays.asList(„This is the heading“));

一个简单的调用

transformer.transformXLS(templateInputStream, beans);

会成功并生成如下内容:

生成的 XLS

现在,我需要迁移到 JXLS 2 以便将 SXSSFWorkbook 用于非常大的 XLSX 文件,但我无法成功地将好的旧标签翻译成他们的等效评论:在在线文档中,我读到可以组合更多表达式一起,但例如像jx:each后跟一个jx:if之类的东西,它使用循环的变量会生成一个表达式 EvaluationException。

您是否有任何提示/示例可能有所帮助?

提前致谢!

4

1 回答 1

1

可以在此处找到结合jx:eachjx:if命令的模板示例,如下所示

结合了 jx:each 和 jx:if 的 jxls 模板

Java 代码在jxls-demo 项目中

尝试使用这种方法。

如果在此之后您仍然在 JXLS-2 中实施您的案例时遇到问题,请在 JXLS 问题跟踪器中提出改进。

于 2016-01-28T22:20:08.743 回答