天天减肥网,内容丰富有趣,生活中的好帮手!
天天减肥网 > java动态表头_easyPOI动态表头

java动态表头_easyPOI动态表头

时间:2023-06-09 03:18:08

相关推荐

java动态表头_easyPOI动态表头

数据不是一成不变的,表格数据的表头也是可删可减,这个时候怎么处理动态表头呢(此处动态表头的数据来自与后端查询所得数据,如果是固定类的动态表头请参考:/docs/easypoi/easypoi-1c0u96flii98v中的注解:isColumnHidden)

说明:没有使用过这个注解,网坛上有人说,这个只是隐藏好像还是会导出,这个光荣而又艰巨的任务就交给各位了

/**

* 动态列导出

* @param response

* @param param 设置表的文件名和sheet名

* @param headList 表头

* @param list 数据源

* @throws IOException

*/

public static void exportActiveSheet(HttpServletResponse response, ExportParams param, List headList, List> list) throws IOException {

Workbook workbook = null;

workbook = ExcelExportUtil.exportExcel(param, headList,list);

if (workbook != null) {

downLoadExcel(param.getIndexName(), response, workbook);

}

}

在业务层你需要

List colList = new ArrayList<>();定义全局的colList 就是表头设置

ExcelExportEntity colEntity = new ExcelExportEntity("表头名称", "键");

colEntity.setNeedMerge(true);

colEntity.setWidth(30);

colEntity.setHeight(20);

.....很多格式或姿势你都可以在这里设置

colList.add(colEntity);

动态列表头

ExcelExportEntity desginsGroup = new ExcelExportEntity("表头名称", "键");//设置整个动态列所属列可以不要名称

List paramCols = new ArrayList<>();动态列表头的集合

list.forEach(item->{// list 动态列表头显示数据,使用forEach请注意自己jdk的版本

// 为了方便后面匹配数据,这里指定key和名称最好一至,方便匹配数值

// 动态列

paramCols.add(new ExcelExportEntity(item.getOfficeName(), item.getOfficeName(),30));

});

desginsGroup.setList(paramCols);

colList.add(desginsGroup);

最后就是数据源了

List> list2 = new ArrayList>();

list.forEach(item->{

Map valMap = new HashMap();

valMap.put("projectName", item.getProjectName());

List> deliDetailList = new ArrayList>();

Map deliValMap = new HashMap();

item.getList().forEach(item2->{

deliValMap.put(item2.getOfficeName(), item2.getDesginArea());

});

deliDetailList.add(deliValMap);

valMap.put("desgins", deliDetailList);

list2.add(valMap);

});

怎么调用就不用我写了吧

如果觉得《java动态表头_easyPOI动态表头》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。