Пример #1
0
        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;
        }
Пример #2
0
        /// <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;
        }