示例#1
0
  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;
  }