前言
有没有小伙伴用EasyExcel设置表的行高列宽时,会有点疑惑,这个 Integer 或者 Short 对应的是什么单位,我们应该设置多大的值,才能满足表的样式需要?
我刚开始使用EasyExcel的时候,就只能多次改变数值大小去得到自己想要的行高列宽效果。
但是现在,我了解EasyExcel 的行高列宽的单位后,就可以直接设置行高列宽的大小了。
EasyExcel 设置行宽列高
要说明单位问题,先要知道EasyExcel 是如何设置行宽列高的,详细实现可以查看文档,我这只是想直观的展示数据给你们看:
EasyExcel 注解方式设置行宽列高
@Getter
@Setter
@EqualsAndHashCode
@ContentRowHeight(10)
@HeadRowHeight(20)
@ColumnWidth(25)
public class WidthAndHeightData {
@ExcelProperty("字符串标题")
private String string;
@ExcelProperty("日期标题")
private Date date;
/**
* 宽度为50
*/
@ColumnWidth(50)
@ExcelProperty("数字标题")
private Double doubleData;
}
EasyExcel 非注解方式设置行宽列高
EasyExcel 非注解方式设置列宽行高的几种实现方式_坐等夕阳落time的博客-CSDN博客
EasyExcel.write(outputStream)
// 这里放入动态头
.head(headNameList)
// java以点分割要转义符
.sheet(fileName.split("\\.")[0])
// 注册策略
.registerWriteHandler(new SimpleColumnWidthStyleStrategy(25)) // 简单的列宽策略,列宽20
.registerWriteHandler(new SimpleRowHeightStyleStrategy((short)25,(short)25)) // 简单的行高策略:头行高,内容行高
.doWrite(datalist);
EasyExcel 的行高列宽的单位
因为在EasyExcel的文档上,它说明行高列宽都是直接说数值,不说单位,所以你无法直观的像前端开发那样,知道单位是px或者其他确定的单位。
经过不断换数值测试了以后,在excel上,我找到了这些数值的单位。
行高单位:磅
列宽单位:字符
注意点
- 行高的数值是精确的,你写25,它在excel中就是25磅
- 列宽的数值不是精确的,你写25,它在excel中是24.38字符,也就是在excel中数值比代码中的小一些,差值在0.62
如何在excel上查看行高列宽
我用的wps
查看行高
查看列宽
在开发中,如何有效的 EasyExcel 直接设置行高列宽的大小
如果产品或者其他对接的人给了你模板,你可以先查看模板的行高列宽大小,然后再直接写数值,数值写大一点也可以。