/** * Метод проверяет наличие в рабочей книге зарегистрированного фонта с указанными характеристиками * и если он отсутствует то регистрирует его. * * @param wb рабочая книга в которой должен быть зарегистрирован требуемый фонт. * @param font характеристики требуемого фонта. * @return зарегистрированный в рабочей книге фонт с требуемыми характеристиками. */ public static HSSFFont ensureFontExists(final HSSFWorkbook wb, final Font font) { final short colorId = font.getColor() != null ? font.getColor().getId() : 0; HSSFFont f = wb.findFont( font.getBoldWeight(), colorId, font.getFontHeight(), font.getFontName(), font.isItalic(), font.isStrikeout(), font.getTypeOffset(), font.getUnderline()); if (f == null) { f = wb.createFont(); f.setBoldweight(font.getBoldWeight()); f.setCharSet(font.getCharSet()); f.setColor(colorId); f.setFontHeight(font.getFontHeight()); f.setFontName(font.getFontName()); f.setItalic(font.isItalic()); f.setStrikeout(font.isStrikeout()); f.setTypeOffset(font.getTypeOffset()); f.setUnderline(font.getUnderline()); } return f; }
public void applyTo(HSSFFont font) { font.setFontName(fontName); font.setFontHeight(fontHeight); font.setBoldweight(boldweight); font.setItalic(italic); font.setStrikeout(strikeout); font.setTypeOffset(typeOffset); font.setUnderline(underline); font.setColor(color); }
/** * Копирует все свойства исходного фонта в целевой. И исходный и целевой фонты должны относиться к * одному и тому же документу Excel. Данный метод используется для того чтобы в последствии * поменять в новом фонте один или несколько свойств не затрагивая при этом свойства исходного * фонта. * * @param wb документ Excel. * @param src фонт взятый в качестве шаблона. * @return созданная в этом же документе копия шрифта. */ public static HSSFFont copyFont(final HSSFWorkbook wb, final HSSFFont src) { final HSSFFont dst = wb.createFont(); dst.setBoldweight(src.getBoldweight()); dst.setCharSet(src.getCharSet()); dst.setColor(src.getColor()); dst.setFontHeight(src.getFontHeight()); dst.setFontName(src.getFontName()); dst.setItalic(src.getItalic()); dst.setStrikeout(src.getStrikeout()); dst.setTypeOffset(src.getTypeOffset()); dst.setUnderline(src.getUnderline()); return dst; }
/** 單元格的字体 workbook excel font --字体模型 */ public static HSSFFont getHSSFFont(HSSFWorkbook workbook, Font f) { HSSFFont font = workbook.createFont(); // 字体名称 font.setFontName(f.getFontNm()); // 字号 font.setFontHeightInPoints(f.getFontSize()); // 字体颜色 font.setColor(f.getFontColor()); // 下划线 font.setUnderline(f.getUnderline()); // 上标下标 font.setTypeOffset(f.getOffset()); // 删除线 font.setStrikeout(f.getDelLine()); // 加粗 font.setBoldweight(f.getBold()); // 斜线 font.setItalic(f.getItalic()); // 字体高度 // font.setFontHeight(arg0); return font; }