在之前的导出excel表头文章poi低版本工具类换成poi5.2导出excel表头
我们用了下面一段代码
// 循环时候获取行高
HSSFRow row = (HSSFRow) iter.next();
// 获取每一行高度
float heightInPoints = row.getHeightInPoints();
打断点进入 HSSFRow 类,里面有下面两个方法
public final class HSSFRow implements Row, Comparable<HSSFRow> {
public short getHeight() {
short height = this.row.getHeight();
if ((height & '耀') != 0) {
height = this.sheet.getSheet().getDefaultRowHeight();
} else {
height = (short)(height & 32767);
}
return height;
}
public float getHeightInPoints() {
return (float)this.getHeight() / 20.0F;
}
}
看一篇原文HSSFWorkbook apache.poi设置行高才知道为啥执行 / 20.0F
excel中行高的单位
px是相对长度,表示pixel(像素),是屏幕上显示数据的最基本的点
pt是绝对长度,表示point(磅),是印刷行业常用单位,等于1/72英寸
dpi(或ppi)表示分辨率,即pixel(dot) per inch,每英寸的像素(点)数
poi中的行高单位
poi中的行高单位和excel的行高单位是不一样得,excel中的行高单位是pt(point,磅)而poi中的行高单位是twips(缇)
换算公式
1pt = 20 twips
此外,px和pt,twips的换算公式是
1px = 0.75pt
1px = 15twips
poi中设置行高
在poi中可以使用HSSRow.setHeight(short s)方法设置行高 例如:设置12pt
row.setHeight((short)(12*20))
导入excel中行高最多为409pt,也就是409*20= 8180twips