Вы можете использовать существующий шрифт (на листе или в рабочей книге) и использовать его как есть, либо изменить его и определить как новый шрифт. Актуальные активные шрифты доступны вам следующим образом: (где newCell - это ячейка, которую вы хотите изменить)
Font newFont = newCell.getSheet().getWorkbook().findFont(oldFont.getBold(),
oldFont.getColor(), oldFont.getFontHeight(), oldFont.getFontName(), oldFont.getItalic(),
oldFont.getStrikeout(), oldFont.getTypeOffset(), oldFont.getUnderline());
Чтобы изменить шрифт и любые его атрибуты:
Font newFont = newCell.getSheet().getWorkbook().createFont();
newFont.setBold(true);
newFont.setColor(10);
newFont.setFontHeightInPoints(72);
newFont.setItalic(false);
// ... etc.
Существует довольно много атрибутов, которые вы можете установить, конечно, это только пример. Но вы все еще не закончили, теперь вам нужно привязать шрифт, который вы только что создали / нашли, к фактической ячейке, которую вы хотели.
CellStyle cellStyle = newCell.getSheet().getWorkbook().createCellStyle();
cellStyle.setFont(newFont);
.. или альтернативно использовать (метод создает новые стили, другой изменяет стиль, уже присутствующий в ячейке):
CellUtil.setFont(newCell, newFont);