private HSSFFont matchFont(Font font) { HSSFColor hssfColor = workbook .getCustomPalette() .findColor( (byte) foreground.getRed(), (byte) foreground.getGreen(), (byte) foreground.getBlue()); if (hssfColor == null) hssfColor = workbook .getCustomPalette() .findSimilarColor( (byte) foreground.getRed(), (byte) foreground.getGreen(), (byte) foreground.getBlue()); boolean bold = (font.getStyle() & Font.BOLD) != 0; boolean italic = (font.getStyle() & Font.ITALIC) != 0; HSSFFont hssfFont = workbook.findFont( bold ? HSSFFont.BOLDWEIGHT_BOLD : 0, hssfColor.getIndex(), (short) (font.getSize() * 20), font.getName(), italic, false, (short) 0, (byte) 0); if (hssfFont == null) { hssfFont = workbook.createFont(); hssfFont.setBoldweight(bold ? HSSFFont.BOLDWEIGHT_BOLD : 0); hssfFont.setColor(hssfColor.getIndex()); hssfFont.setFontHeight((short) (font.getSize() * 20)); hssfFont.setFontName(font.getName()); hssfFont.setItalic(italic); hssfFont.setStrikeout(false); hssfFont.setTypeOffset((short) 0); hssfFont.setUnderline((byte) 0); } return hssfFont; }