最近出现一个导出需求。 因为我们使用的是阿里的EasyExcel组件。 纠缠了一个多小时。 最终决定以自定义head的方式来解决这个问题。
具体代码如下:
Sheet sheet1 = new Sheet(1, 0 , ExportArticleVO.class);
List<String> col4 = Lists.newArrayList("文章标题");
List<String> col5 = Lists.newArrayList("分享次数");
List<String> col6 = Lists.newArrayList("被转发次数");
List<String> col7 = Lists.newArrayList("被访问次数");
List<String> col8 = Lists.newArrayList("来源");
List<List<String>> head1 = null;
if (StringUtils.equals(orgId, hengtaiOrgId) || StringUtils.equals(orgId, csOrgId)) {
List<String> col9 = Lists.newArrayList("所属栏目");
head1 = Lists.newArrayList(col4, col5, col6, col7, col8, col9);
} else {
head1 = Lists.newArrayList(col4, col5, col6, col7, col8);
}
sheet1.setHead(head1);
sheet1.setSheetName("文章报表");
sheet1.setAutoWidth(true);
writer.write(dataList, sheet1);
以上方法就舍弃了EasyExcel的实体VO。 直接自定义了head 这样就可以直接根据条件来做某一列的展示或者隐藏。
以上是我的解决方案。 希望各位有更好的方法给予指正~ 感谢!