首页 文章

Apache POI麻烦的字体

提问于
浏览
0

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

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

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

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

我已经尝试创建一个普通字体并将其应用于CellStyle,但是当它添加到cellStyle时会导致nullPointerException . 我不知所措 .

1 回答

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

相关问题