Beispiel #1
0
        internal static WorksheetRangeStyle ConvertFromXmlStyle(Worksheet grid, RGXmlCellStyle xmlStyle,
                                                                CultureInfo culture)
        {
            WorksheetRangeStyle style = new WorksheetRangeStyle();

            if (xmlStyle == null)
            {
                return(style);
            }

            // back color
            if (!string.IsNullOrEmpty(xmlStyle.backColor))
            {
                SolidColor color;

                if (TextFormatHelper.DecodeColor(xmlStyle.backColor, out color))
                {
                    style.Flag     |= PlainStyleFlag.BackColor;
                    style.BackColor = color;
                }
            }

            // fill pattern
            if (xmlStyle.fillPattern != null)
            {
                SolidColor color;
                if (TextFormatHelper.DecodeColor(xmlStyle.fillPattern.color, out color))
                {
                    style.Flag            |= PlainStyleFlag.FillPattern;
                    style.FillPatternColor = color;
                    style.FillPatternStyle = (HatchStyles)xmlStyle.fillPattern.patternStyleId;
                }
            }

            // text color
            if (!string.IsNullOrEmpty(xmlStyle.textColor))
            {
                SolidColor color;
                if (TextFormatHelper.DecodeColor(xmlStyle.textColor, out color))
                {
                    style.Flag     |= PlainStyleFlag.TextColor;
                    style.TextColor = color;
                }
            }

            // horizontal align
            if (!string.IsNullOrEmpty(xmlStyle.hAlign))
            {
                style.Flag  |= PlainStyleFlag.HorizontalAlign;
                style.HAlign = XmlFileFormatHelper.DecodeHorizontalAlign(xmlStyle.hAlign);
            }
            // vertical align
            if (!string.IsNullOrEmpty(xmlStyle.vAlign))
            {
                style.Flag  |= PlainStyleFlag.VerticalAlign;
                style.VAlign = XmlFileFormatHelper.DecodeVerticalAlign(xmlStyle.vAlign);
            }

            // font name
            if (!string.IsNullOrEmpty(xmlStyle.font))
            {
                style.Flag    |= PlainStyleFlag.FontName;
                style.FontName = xmlStyle.font;
            }
            // font size
            if (xmlStyle.fontSize != null)
            {
                style.Flag    |= PlainStyleFlag.FontSize;
                style.FontSize = TextFormatHelper.GetFloatValue(xmlStyle.fontSize, grid.RootStyle.FontSize, culture);
            }

            // bold
            if (xmlStyle.bold != null)
            {
                style.Flag |= PlainStyleFlag.FontStyleBold;
                style.Bold  = xmlStyle.bold == "true";
            }
            // italic
            if (xmlStyle.italic != null)
            {
                style.Flag  |= PlainStyleFlag.FontStyleItalic;
                style.Italic = xmlStyle.italic == "true";
            }
            // strikethrough
            if (xmlStyle.strikethrough != null)
            {
                style.Flag         |= PlainStyleFlag.FontStyleStrikethrough;
                style.Strikethrough = xmlStyle.strikethrough == "true";
            }
            // underline
            if (xmlStyle.underline != null)
            {
                style.Flag     |= PlainStyleFlag.FontStyleUnderline;
                style.Underline = xmlStyle.underline == "true";
            }

            // text-wrap
            if (!string.IsNullOrEmpty(xmlStyle.textWrap))
            {
                style.Flag        |= PlainStyleFlag.TextWrap;
                style.TextWrapMode = XmlFileFormatHelper.DecodeTextWrapMode(xmlStyle.textWrap);
            }

            // padding
            if (!string.IsNullOrEmpty(xmlStyle.indent))
            {
                style.Flag |= PlainStyleFlag.Indent;

                int indent = TextFormatHelper.GetPixelValue(xmlStyle.indent, 0);
                if (indent > 0 && indent < 65535)
                {
                    style.Indent = (ushort)indent;
                }
            }

            // padding
            if (!string.IsNullOrEmpty(xmlStyle.padding))
            {
                style.Flag   |= PlainStyleFlag.Padding;
                style.Padding = TextFormatHelper.DecodePadding(xmlStyle.padding);
            }

            // rotate angle
            int angle;

            if (!string.IsNullOrEmpty(xmlStyle.rotateAngle) &&
                int.TryParse(xmlStyle.rotateAngle, out angle))
            {
                style.Flag         |= PlainStyleFlag.RotationAngle;
                style.RotationAngle = angle;
            }

            return(style);
        }
Beispiel #2
0
        internal static RGXmlCellStyle ConvertToXmlStyle(WorksheetRangeStyle style)
        {
            if (style == null || style.Flag == PlainStyleFlag.None)
            {
                return(null);
            }

            RGXmlCellStyle xmlStyle = new RGXmlCellStyle();

            if (StyleUtility.HasStyle(style, PlainStyleFlag.BackColor))
            {
                xmlStyle.backColor = TextFormatHelper.EncodeColor(style.BackColor);
            }

            if (HasStyle(style, PlainStyleFlag.FillPattern))
            {
                RGXmlCellStyleFillPattern xmlFillPattern = new RGXmlCellStyleFillPattern()
                {
                    color          = TextFormatHelper.EncodeColor(style.FillPatternColor),
                    patternStyleId = (int)style.FillPatternStyle,
                };
                xmlStyle.fillPattern = xmlFillPattern;
            }

            if (StyleUtility.HasStyle(style, PlainStyleFlag.TextColor))
            {
                xmlStyle.textColor = TextFormatHelper.EncodeColor(style.TextColor);
            }
            if (StyleUtility.HasStyle(style, PlainStyleFlag.FontName))
            {
                xmlStyle.font = style.FontName;
            }
            if (StyleUtility.HasStyle(style, PlainStyleFlag.FontSize))
            {
                xmlStyle.fontSize = style.FontSize.ToString();
            }
            if (StyleUtility.HasStyle(style, PlainStyleFlag.FontStyleBold))
            {
                xmlStyle.bold = style.Bold.ToString().ToLower();
            }
            if (StyleUtility.HasStyle(style, PlainStyleFlag.FontStyleItalic))
            {
                xmlStyle.italic = style.Italic.ToString().ToLower();
            }
            if (StyleUtility.HasStyle(style, PlainStyleFlag.FontStyleStrikethrough))
            {
                xmlStyle.strikethrough = style.Strikethrough.ToString().ToLower();
            }
            if (StyleUtility.HasStyle(style, PlainStyleFlag.FontStyleUnderline))
            {
                xmlStyle.underline = style.Underline.ToString().ToLower();
            }
            if (StyleUtility.HasStyle(style, PlainStyleFlag.HorizontalAlign))
            {
                xmlStyle.hAlign = XmlFileFormatHelper.EncodeHorizontalAlign(style.HAlign);
            }
            if (StyleUtility.HasStyle(style, PlainStyleFlag.VerticalAlign))
            {
                xmlStyle.vAlign = XmlFileFormatHelper.EncodeVerticalAlign(style.VAlign);
            }
            if (StyleUtility.HasStyle(style, PlainStyleFlag.TextWrap))
            {
                xmlStyle.textWrap = XmlFileFormatHelper.EncodeTextWrapMode(style.TextWrapMode);
            }
            if (StyleUtility.HasStyle(style, PlainStyleFlag.Indent))
            {
                xmlStyle.indent = style.Indent.ToString();
            }
            if (StyleUtility.HasStyle(style, PlainStyleFlag.Padding))
            {
                xmlStyle.padding = TextFormatHelper.EncodePadding(style.Padding);
            }
            if (StyleUtility.HasStyle(style, PlainStyleFlag.RotationAngle))
            {
                xmlStyle.rotateAngle = style.RotationAngle.ToString();
            }

            return(xmlStyle);
        }