当前位置: 首页 > 知识库问答 >
问题:

Apache POI字体故障

叶国兴
2023-03-14

我在使用Apache POI版本3.15(目前最新的稳定的非beta版本)时遇到了一个奇怪的错误,我的互联网搜索没有显示任何其他人有这个错误。我试图简单地加粗一个单元格,例如:

Workbook wb = new HSSFWorkbook();
HSSFFont font = wb.createFont();
font.setBold(true);

我已经遇到了一个问题,它声称工作簿创建的字体不是HSSFFont,而是某种普通字体:

我尝试创建一个普通字体并将其应用于CellStyle,但在将其添加到CellStyle时会导致nullPointerException。我不知所措。

共有1个答案

冯霖
2023-03-14

wb.createfont()返回一个org.apache.poi.ss.usermodel.font,但是如果检查它返回的font的运行时类,它实际上是一个hssffont。您可以尝试强制转换为HSSFFONT,或者只是将其作为font:

final Workbook wb = new HSSFWorkbook();

final HSSFFont hssfFont = (HSSFFont)wb.createFont();
hssfFont.setBold(true);

final Font font = wb.createFont();
font.setBold(true);
 类似资料:
  • 我有点迷失了 我试过3.17、4.0.0和5.0.0版。 或 我无法获得没有弃用或类型错误的代码:-( 我将Eclipe与Maven和Java11一起使用。在版本发布之后,我做了“更新项目”来更新Maven。

  • 现在我有一个docx文件,我加载到 我可以看到存储在style中的不同样式的当前字体大小。通过做xml 我想用poi更新字体大小,所以我试了一下 但是,在完成上述代码后,如果我使用第一段代码检查文档的字体大小(object),字体大小仍然是原始值,而不是我想要设置的12。 对于如何解决这个问题,有什么建议吗?

  • 在xlsx工作簿中,有些单元格具有一些无界的SUMIF公式,如下所示:。使用ApachePOI5.0.0对一个SUMIF函数的评估持续100ms,对给定工作簿的评估持续几分钟。 提高执行持续时间的一种方法是将公式绑定到如下内容:。在我的情况下,这不是一个解决方案,因为我不是xlsx文件的作者,系统从未知的人那里获取未知的xlsx文件(因此我不能仅仅告诉他们限制SUMIF范围)。 的当前实现迭代给定

  • 在执行此代码时,它在线程"main"java.lang.NoClassDefFoundError: org/apache/Commons/math3/util/ArithmeticUtils在org.apache.poi.poifs.property.RootProperty.set大小(RootProperty.java:59)在org.apache.poi.poifs.property.Dir

  • 我正在尝试用ApachePOI创建甜甜圈图,但没有任何信息或示例。我尝试使用饼图的例子,但没有成功。你能帮我解决这个问题吗?

  • 如何使用Apache POI使整个excel行单元格加粗文本? 例如: 列标题应该用粗体。与其为标题行的每个单元格应用样式,我如何将一些样式应用于整行?