How to reproduce: XSSFWorkbook wb = new XSSFWorkbook(); wb.createFont(); //this next font gets ignored because the font above was never modified XSSFFont f = wb.createFont(); f.setBold(true); StylesTable.putFont(font) checks to see if the font is already there as part of createFont(), before any modifications on the font can occur. A workaround is to simply not call wb.createFont() if you don't modify the Font afterward, but this may not be viable in all cases.
Fixed in r949177 - XSSF now behaves as HSSF did on creating multiple un-changed fonts