如何使用HSSFFont设置十进制数字体

时间:2015-02-16 10:51:00

标签: java apache-poi

我想将文本字体设置为7.5到Excel工作表中的特定文本。我使用下面的代码来准备字体。

HSSFCellStyle txtStyle = (HSSFCellStyle)workbook.createCellStyle();
HSSFFont txtFont = (HSSFFont)workbook.createFont();
txtFont.setFontName("Arial");
txtFont.setFontHeightInPoints((short)7.5);
txtStyle.setFont(txtFont);

但由于短类型转换,它总是将字体设为7,因此excel表中的目标文本采用字体7而不是7.5。我也尝试过'setFontHeight'方法,但这也是简短的参数。那么有什么方法可以将文本字体设置为十进制数?

1 个答案:

答案 0 :(得分:12)

将评论提升为答案 - POI HSSF字体类有两种字体大小设置方法:

对于大多数情况,使用setFontHeightInPoints更容易,并且在Javadocs中建议使用{{3}}。但是,它只能处理整数字体高度。这是大多数字体大小,但不是全部

要将字体高度设置为7.5,您需要将代码更改为:

xtFont.setFontHeight((short)(7.5*20));

使用带有1/20点大小的备用值,因此应对非整数值。