simple Bean
介绍
这一章描述了访问对象属性的语法,满足了规定的语法才能使 jXLS 引擎正确的处理 XLS 模板。
下面的代码示例了如何将参数传递个 XLSTransformer 。
Department department;
... //initialization
Map beans = new HashMap();
beans.put("department", department);
XLSTransformer transformer = new XLSTransformer();
transformer.transformXLS(xlsTemplateFileName, beans, outputFileName);
Department 对象
public class Department {
private String name;
private Employee chief;
private List staff = new ArrayList();
public Department(String name) {
this.name = name;
}
public Department(String name, Employee chief, List staff) {
this.name = name;
this.chief = chief;
this.staff = staff;
}
public void addEmployee(Employee employee) {
staff.add(employee);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Employee getChief() {
return chief;
}
public void setChief(Employee chief) {
this.chief = chief;
}
public List getStaff() {
return staff;
}
public void setStaff(List staff) {
this.staff = staff;
}
}
基本属性访问
在 Excel 文件中使用注释来访问对象的属性:
${department.name}
jXLS 引擎将会查找 Map 的 key 值是否一个叫“ department ”的,如果有将尝试取出 name 的属性并填入相应的 Excel 的单元格中。
同样也可以访问更复杂的对象。例如输出 department 中 chief 的 name 。
${department.chief.name}
可以达到对象属性的任意深度。例如:
${bean.bean1.bean2.bean3.bean4.bean5.bean6.bean7.bean8.bean9.beanX.property1}
单个单元格使用多个属性
我们也可以在一个单元格中访问多个属性,例如:
Employee: ${employee.name} - ${employee.age} years
它的输出结果如下:
Employee: John - 35 years