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

标签 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”,但它也采用 short 作为参数。那么有什么方法可以将文本字体设置为十进制数吗?

最佳答案

将评论推广到答案——POI HSSF 字体类有两种字体大小设置方法:

使用 setFontHeightInPoints对于大多数情况来说是更简单的一种,并且在 Javadocs 中被推荐。但是,它只能处理整数字体高度。这是大多数字体大小,但不是全部

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

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

它使用采用 1/20 点大小的替代方法,因此可以处理非整数值。

关于java - 如何使用 HSSFFont 以十进制数设置字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28539726/

相关文章:

java - 无法实例化 Activity - ClassNotFoundException

java - 如何在shell脚本中运行unstop jar

java - 即使我有正确的 jar,也会出现 ClassNotFoundException

apache-poi - apache poi - XSSF 读取格式化的单元格值

java - split 异常

java - jfree Chart 在图像上绘制绘图

java - 上传excel文件从文件中读取数据并使用spring boot Rest api将其插入数据库

java - 如何使用 HSSFSheet Apache POI 在 excel 中创建具有多种样式的单元格?

java - 合并和颜色样式不适用于 Apache POI excel 2003 格式

java - 在 LibGDX 中将形状绘制为纹理