我在使用 Apache POI 版本 3.15(目前是最新的稳定的非 beta 版本)时遇到了一个奇怪的错误,并且我的互联网搜索没有显示其他任何人都出现此错误。我试图简单地将单元格加粗,例如:
Workbook wb = new HSSFWorkbook();
HSSFFont font = wb.createFont();
font.setBold(true);
我已经遇到了一个问题,它声称工作簿正在创建的字体不是 HSSFFont,而是一些普通字体:
incompatible types: Font cannot be converted to 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);
关于java - Apache POI 字体问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41108183/