jxls收集印刷订单
这是我的Excel模板。 不幸的是,employee.email是ArrayList,可以有多个值。
结果变成了
实际上,aaa1.gmail.com和aaa2.gmail.com属于AAA,同样bbb1.gmail.com和bbb2.gmail.com属于BBB。 在这种情况下,excel输出非常具有误导性。
是否有可能得到如下?
由于我对jxls非常陌生,所以任何帮助真的很感激。
首先你需要有一个像下面这样的POJO来存放数据。
public class Employee { private int id = 0; private String name = null; private List<String> mails = new ArrayList<String>(); // getters & setters }
现在创build你想在你的excel文件中显示的数据对象
Employee emp1 = new Employee(); emp1.setId(1); emp1.setName("AAA"); emp1.getMails().add("aaa1@xyz.com"); emp1.getMails().add("aaa2@xyz.com"); Employee emp2 = new Employee(); emp2.setId(2); emp2.setName("BBB"); emp2.getMails().add("bbb1@xyz.com"); emp2.getMails().add("bbb2@xyz.com"); List<Employee> employees = new ArrayList<Employee>(); employees.add(emp1); employees.add(emp2);
然后将数据添加到java.util.Map中
Map<String, List<Employee>> beanParams = new HashMap<String, List<Employee>>(); beanParams.put("employees", employees);
然后创buildXLSTransformer对象并设置源文件,目标文件和保存数据的地图
XLSTransformer former = new XLSTransformer(); former.transformXLS(srcFilePath, beanParams, destFilePath);
你需要使用两个 <jx:forEach>
标签遍历地图中的列表,然后你可以将值设置到你的结果excel文件中。
使用以下方法更改您的Excel模板文件
最后的结果会像