问题描述
现在定义模板如下现在贴出关键代码Workbook wb = new Workbook(template_file_path);WorkbookDesigner designer = new WorkbookDesigner();designer.setWorkbook(wb);/*Map<String, String> person = new HashMap<String, String>();person.put("id", "id");person.put("name", "name");*/Person person = new Person("1" , "jack");designer.setDataSource("Person", person);designer.process(true);return wb;第一个问题????现在的问题是设置Person person = new Person("1" , "jack");实体类可以正确导出excel但是设置hashMap 就不能导出 有时报表比价复杂 用hashMap更灵活些 有什么办法解决第二个问题????public class DataTable implements ICellsDataTable{ private ArrayList<Person> list = null; private int index; public DataTable() { list = new ArrayList<Person>(); for(int i = 0; i < 10; i++) { Person person = new Person("" + i, "Person" + i); list.add(person); } index = -1; } public String[] getColumns() { return new String[] { "id", "name" }; } public int getCount() { return this.list.size(); } public void beforeFirst() { index = -1; } public Object get(int columnIndex) { if(index < 0 || index >= this.getCount()) { return null; } Person person = this.list.get(index); switch (columnIndex) { case 0: return person.getId(); case 1: return person.getName(); default: return null; } } public boolean next() { index += 1; if(index >= this.getCount()) { return false; } return true; }//这个方法为什么不执行呢 执行的是public Object get(int columnIndex)// 我希望执行public Object get(String columnName)这个方法,这样我就可以写一个通用的方法 /** * Returns the value of the designated column in the current row. * * @param columnName * the property name of the POJO. * @return the value of the designated column in the current row. */ public Object get(String columnName) { Person person = this.list.get(index); if(columnName.equals("id")) { return person.getId(); } if(columnName.equals("name")) { return person.getName(); } return null; }}最后一个问题???是如何在模板中定义图片 然后填充进去,像那种个人简历的模板
解决方案
第一个问题:你可以放map里面,自己写一个工具类,利用反射把map的value放入对象的对应属性中,返回对象,第二个问题:仔细检查代码,打断点跟一下;第三个问题:给图片占用的单元格定义一个标志,后台判断,如果符合条件:插入图片:http://wysunning.iteye.com/blog/570238
解决方案二:
前两个问题应该是一个问题,即不支持map形的数据源。但是支持list,哈。比较怪的框架。