我使用Apache POI版本3.15(目前是最新稳定的非beta版本)得到一个奇怪的错误,我的互联网搜索没有向其他人显示此错误。我试图简单地加粗一个单元格,例如:
Workbook wb = new HSSFWorkbook();
HSSFFont font = wb.createFont();
font.setBold(true);
我遇到一个问题,它声称工作簿创建的字体不是HSSFFont,而是一些普通的字体:
不兼容的类型:字体无法转换为HSSFFont
我尝试创建普通字体并将其应用于CellStyle,但在将其添加到cellStyle时会导致nullPointerException。我不知所措。
答案 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);