public static IFont GetFont(this IWorkbook wb, SortedDictionary<string, string> fontdic) { var weight = fontdic.FontWeight(); var color = fontdic.FontColor(); var size = fontdic.FontSize(); var name = fontdic.FontName(); var underline = fontdic.FontUnderline(); var italic = fontdic.FontItalic(); var strikeout = fontdic.FontStrikeout(); var offset = fontdic.ConvertToSuperScript(); var findHeight = (short)(size * 20); var font = wb.FindFont(weight, color, findHeight, name, italic, strikeout, offset, underline); if (font == null) { font = wb.CreateFont(); font.Boldweight = weight; font.Color = color; font.FontHeightInPoints = size; font.FontName = name; font.Underline = underline; font.IsItalic = italic; font.IsStrikeout = strikeout; font.TypeOffset = offset; } return font; }
/// <summary> /// 创建单元格样式。 /// </summary> /// <param name="workbook">工作表对象</param> /// <param name="styleCallback">单元格样式设置回调</param> /// <param name="fontCallback">字体设置回调</param> /// <param name="borderStyle">边框样式</param> /// <returns>单元格样式对象</returns> public static ICellStyle NewCellStyle(this IWorkbook workbook, Action<ICellStyle> styleCallback = null, Action<IFont> fontCallback = null, BorderStyle borderStyle = BorderStyle.Thin) { var font = workbook.CreateFont(); var style = workbook.CreateCellStyle(); font.FontName = "Courier New"; font.FontHeightInPoints = 12; style.WrapText = false; style.Alignment = HorizontalAlignment.Center; style.VerticalAlignment = VerticalAlignment.Center; style.BorderLeft = borderStyle; style.BorderTop = borderStyle; style.BorderRight = borderStyle; style.BorderBottom = borderStyle; fontCallback?.Invoke(font); styleCallback?.Invoke(style); style.SetFont(font); return style; }