Apache POI麻烦字体

时间:2016-12-12 19:32:39

标签: java excel apache fonts apache-poi

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

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

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

  

不兼容的类型:字体无法转换为HSSFFont

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

1 个答案:

答案 0 :(得分:2)

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);