EasyExcel 非注解方式设置列宽行高的几种实现方式

您所在的位置:网站首页 excel表设置行高列宽 EasyExcel 非注解方式设置列宽行高的几种实现方式

EasyExcel 非注解方式设置列宽行高的几种实现方式

2024-07-10 08:37| 来源: 网络整理| 查看: 265

前言

最近做项目需要做导出,导出使用EasyExcel这个工具,快捷实现功能。简单的导出表,使用注解的方式完全满足需求,但是如果是动态头,实时生成头写入的方式,就不能使用注解的方式去设置列宽行高,所以我们需要会用非注解方式设置列宽行高。

代码 第一种:直接使用简单的列宽行高的style策略

简单的列宽策略,列宽20 :new SimpleColumnWidthStyleStrategy(20))  简单的行高策略:头行高30,内容行高20 :new SimpleRowHeightStyleStrategy((short)30,(short)20))

EasyExcel.write(outputStream) // 这里放入动态头 .head(headNameList) // java以点分割要转义符 .sheet(fileName.split("\\.")[0]) // 注册策略 .registerWriteHandler(new SimpleColumnWidthStyleStrategy(20)) // 简单的列宽策略,列宽20 .registerWriteHandler(new SimpleRowHeightStyleStrategy((short)30,(short)20)) // 简单的行高策略:头行高30,内容行高20 .doWrite(datalist); 第二种:继承抽象的style策略AbstractColumnWidthStyleStrategy,然后实现setColumnWidth方法来设置列宽行高 EasyExcel.write(outputStream) // 这里放入动态头 .head(headNameList) // java以点分割要转义符 .sheet(fileName.split("\\.")[0]) // 重写AbstractColumnWidthStyleStrategy策略的setColumnWidth方法 .registerWriteHandler(new AbstractColumnWidthStyleStrategy() { @Override protected void setColumnWidth(WriteSheetHolder writeSheetHolder, List list, Cell cell, Head head, Integer integer, Boolean aBoolean) { Sheet sheet = writeSheetHolder.getSheet(); int columnIndex = cell.getColumnIndex(); // 列宽40 sheet.setColumnWidth(columnIndex, 4000); // 行高7 sheet.setDefaultRowHeight((short) 700); } }) .doWrite(datalist); 参考资料

写excel · 语雀



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3