一、前因
这段时间开始使用easypoi进行开发,最近用到了横向遍历的模板语法,然而无论怎么试,都输出不了,我就纳闷了。然后就是去官网找文档,然而文档也并未多对横向遍历进行更详细的说明,最后去了作者的代码仓库中查查有什么解决方案,废话不多说,直接上他的测试代码!请认真,注意,有大坑,也许是我粗心了~
示例展示
-
文档 :
-
示例代码 :
List<Map<String, Object>> colList = new ArrayList<Map<String, Object>>();
//先处理表头
Map<String, Object> map = new HashMap<String, Object>();
map.put("name", "小明挑战");
map.put("zq", "正确");
map.put("cw", "错误");
map.put("tj", "统计");
map.put("zqmk", "t.zq_xm");
map.put("cwmk", "t.cw_xm");
map.put("tjmk", "t.tj_xm");
colList.add(map);
map = new HashMap<String, Object>();
map.put("name", "小红挑战");
map.put("zq", "正确");
map.put("cw", "错误");
map.put("tj", "统计");
map.put("zqmk", "n:t.zq_xh");
map.put("cwmk", "n:t.cw_xh");
map.put("tjmk", "n:t.tj_xh");
colList.add(map);
value.put("colList", colList);
List<Map<String, Object>> valList = new ArrayList<Map<String, Object>>();
map = new HashMap<String, Object>();
map.put("one", "运动");
map.put("two", "跑步");
map.put("zq_xm", 1);
map.put("cw_xm", 2);
map.put("tj_xm", 3);
map.put("zq_xh", 4);
map.put("cw_xh", 2);
map.put("tj_xh", 6);
valList.add(map);
map = new HashMap<String, Object>();
map.put("one", "运动");
map.put("two", "跳高");
map.put("zq_xm", 1);
map.put("cw_xm", 2);
map.put("tj_xm", 3);
map.put("zq_xh", 4);
map.put("cw_xh", 2);
map.put("tj_xh", 6);
valList.add(map);
map = new HashMap<String, Object>();
map.put("one", "文化");
map.put("two", "数学");
map.put("zq_xm", 1);
map.put("cw_xm", 2);
map.put("tj_xm", 3);
map.put("zq_xh", 4);
map.put("cw_xh", 2);
map.put("tj_xh", 6);
valList.add(map);
value.put("valList", valList);
TemplateExportParams params = new TemplateExportParams("doc/for_Col.xlsx");
/**
* 这里就是大坑所在!!记得这值设置为true,文档并未说明
*/
params.setColForEach(true);
Workbook book = ExcelExportUtil.exportExcel(params, value);
//PoiMergeCellUtil.mergeCells(book.getSheetAt(0), 1, 0,1);
FileOutputStream fos = new FileOutputStream("D:/ExcelExportTemplateColFeTest_one.xlsx");
book.write(fos);
fos.close();
- excel模板文件 :
说明
相信看示例代码的朋友们已经发现了,就是TemplateExportParams 中的“colForEach”字段,横向遍历需要将此值设置为true!!!而打开TemplateExportParams.java 源码,该字段也未说明。在晋升码农的路上,还有很多大坑在等着你,没事多看看demo和源码~
附上作者的仓库地址:easypoi-test 文件源码都在里面