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); }
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); }