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