如何使用 HSSFFont 以十进制数设置字体
How to set font in decimal number using HSSFFont
我想将 excel sheet 中的特定文本的文本字体设置为 7.5。我正在使用下面的代码来准备字体。
HSSFCellStyle txtStyle = (HSSFCellStyle)workbook.createCellStyle();
HSSFFont txtFont = (HSSFFont)workbook.createFont();
txtFont.setFontName("Arial");
txtFont.setFontHeightInPoints((short)7.5);
txtStyle.setFont(txtFont);
但由于短类型转换,它始终将字体设为 7,因此 excel sheet 中的目标文本采用字体 7 而不是 7.5。我也尝试了方法 'setFontHeight' 但这也需要 short 作为参数。那么有什么方法可以将文本字体设置为十进制数吗?
推广评论答案-POI HSSF字体class有两种字号设置方法:
- setFontHeight(short) - 以 1/20 点为单位设置字体高度
- setFontHeightInPoints(short) - 设置字体高度为point
在大多数情况下,使用 setFontHeightInPoints 是更简单的方法,在 Javadocs 中推荐使用。但是,它只能处理整数字体高度。这是大多数字体大小,但不是全部
要将字体高度设置为 7.5,您需要将代码更改为:
xtFont.setFontHeight((short)(7.5*20));
它使用另一种采用 1/20
点大小的方法,因此可以处理非整数值。
我想将 excel sheet 中的特定文本的文本字体设置为 7.5。我正在使用下面的代码来准备字体。
HSSFCellStyle txtStyle = (HSSFCellStyle)workbook.createCellStyle();
HSSFFont txtFont = (HSSFFont)workbook.createFont();
txtFont.setFontName("Arial");
txtFont.setFontHeightInPoints((short)7.5);
txtStyle.setFont(txtFont);
但由于短类型转换,它始终将字体设为 7,因此 excel sheet 中的目标文本采用字体 7 而不是 7.5。我也尝试了方法 'setFontHeight' 但这也需要 short 作为参数。那么有什么方法可以将文本字体设置为十进制数吗?
推广评论答案-POI HSSF字体class有两种字号设置方法:
- setFontHeight(short) - 以 1/20 点为单位设置字体高度
- setFontHeightInPoints(short) - 设置字体高度为point
在大多数情况下,使用 setFontHeightInPoints 是更简单的方法,在 Javadocs 中推荐使用。但是,它只能处理整数字体高度。这是大多数字体大小,但不是全部
要将字体高度设置为 7.5,您需要将代码更改为:
xtFont.setFontHeight((short)(7.5*20));
它使用另一种采用 1/20
点大小的方法,因此可以处理非整数值。