internal override ExcelFillXml Copy() { ExcelGradientFillXml newFill = new ExcelGradientFillXml(NameSpaceManager); newFill.PatternType = base._fillPatternType; newFill.BackgroundColor = _backgroundColor.Copy(); newFill.PatternColor = _patternColor.Copy(); newFill.GradientColor1 = GradientColor1.Copy(); newFill.GradientColor2 = GradientColor2.Copy(); newFill.Type = Type; newFill.Degree = Degree; newFill.Top = Top; newFill.Bottom = Bottom; newFill.Left = Left; newFill.Right = Right; return(newFill); }
private int GetIdGradientFill(eStyleClass styleClass, eStyleProperty styleProperty, object value) { ExcelGradientFillXml fill; if(Fill is ExcelGradientFillXml) { fill = (ExcelGradientFillXml)Fill.Copy(); } else { fill = new ExcelGradientFillXml(Fill.NameSpaceManager); fill.GradientColor1.SetColor(Color.White); fill.GradientColor2.SetColor(Color.FromArgb(79,129,189)); fill.Type=ExcelFillGradientType.Linear; fill.Degree=90; fill.Top = double.NaN; fill.Bottom = double.NaN; fill.Left = double.NaN; fill.Right = double.NaN; } switch (styleProperty) { case eStyleProperty.GradientType: fill.Type = (ExcelFillGradientType)value; break; case eStyleProperty.GradientDegree: fill.Degree = (double)value; break; case eStyleProperty.GradientTop: fill.Top = (double)value; break; case eStyleProperty.GradientBottom: fill.Bottom = (double)value; break; case eStyleProperty.GradientLeft: fill.Left = (double)value; break; case eStyleProperty.GradientRight: fill.Right = (double)value; break; case eStyleProperty.Color: case eStyleProperty.Tint: case eStyleProperty.IndexedColor: case eStyleProperty.AutoColor: ExcelColorXml destColor; if (styleClass == eStyleClass.FillGradientColor1) { destColor = fill.GradientColor1; } else { destColor = fill.GradientColor2; } if (styleProperty == eStyleProperty.Color) { destColor.Rgb = value.ToString(); } else if (styleProperty == eStyleProperty.Tint) { destColor.Tint = (decimal)value; } else if (styleProperty == eStyleProperty.IndexedColor) { destColor.Indexed = (int)value; } else { destColor.Auto = (bool)value; } break; default: throw (new ArgumentException("Invalid class/property for class Fill.")); } int subId; string id = fill.Id; subId = _styles.Fills.FindIndexByID(id); if (subId == int.MinValue) { return _styles.Fills.Add(id, fill); } return subId; }
internal override ExcelFillXml Copy() { ExcelGradientFillXml newFill = new ExcelGradientFillXml(NameSpaceManager); newFill.PatternType = base._fillPatternType; newFill.BackgroundColor = _backgroundColor.Copy(); newFill.PatternColor = _patternColor.Copy(); newFill.GradientColor1 = GradientColor1.Copy(); newFill.GradientColor2 = GradientColor2.Copy(); newFill.Type = Type; newFill.Degree = Degree; newFill.Top = Top; newFill.Bottom = Bottom; newFill.Left = Left; newFill.Right = Right; return newFill; }
private int GetIdGradientFill(eStyleClass styleClass, eStyleProperty styleProperty, object value) { ExcelGradientFillXml fill; if (Fill is ExcelGradientFillXml) { fill = (ExcelGradientFillXml)Fill.Copy(); } else { fill = new ExcelGradientFillXml(Fill.NameSpaceManager); fill.GradientColor1.SetColor(Color.White); fill.GradientColor2.SetColor(Color.FromArgb(79, 129, 189)); fill.Type = ExcelFillGradientType.Linear; fill.Degree = 90; fill.Top = double.NaN; fill.Bottom = double.NaN; fill.Left = double.NaN; fill.Right = double.NaN; } switch (styleProperty) { case eStyleProperty.GradientType: fill.Type = (ExcelFillGradientType)value; break; case eStyleProperty.GradientDegree: fill.Degree = (double)value; break; case eStyleProperty.GradientTop: fill.Top = (double)value; break; case eStyleProperty.GradientBottom: fill.Bottom = (double)value; break; case eStyleProperty.GradientLeft: fill.Left = (double)value; break; case eStyleProperty.GradientRight: fill.Right = (double)value; break; case eStyleProperty.Color: case eStyleProperty.Tint: case eStyleProperty.IndexedColor: case eStyleProperty.AutoColor: ExcelColorXml destColor; if (styleClass == eStyleClass.FillGradientColor1) { destColor = fill.GradientColor1; } else { destColor = fill.GradientColor2; } if (styleProperty == eStyleProperty.Color) { destColor.Rgb = value.ToString(); } else if (styleProperty == eStyleProperty.Tint) { destColor.Tint = (decimal)value; } else if (styleProperty == eStyleProperty.IndexedColor) { destColor.Indexed = (int)value; } else { destColor.Auto = (bool)value; } break; default: throw (new ArgumentException("Invalid class/property for class Fill.")); } int subId; string id = fill.Id; subId = _styles.Fills.FindIndexByID(id); if (subId == int.MinValue) { return(_styles.Fills.Add(id, fill)); } return(subId); }
/// <summary> /// Loads the style XML to memory /// </summary> private void LoadFromDocument() { //NumberFormats ExcelNumberFormatXml.AddBuildIn(NameSpaceManager, NumberFormats); XmlNode numNode = _styleXml.SelectSingleNode(NumberFormatsPath, _nameSpaceManager); if (numNode != null) { foreach (XmlNode n in numNode) { ExcelNumberFormatXml nf = new ExcelNumberFormatXml(_nameSpaceManager, n); NumberFormats.Add(nf.Id, nf); if (nf.NumFmtId >= NumberFormats.NextId) NumberFormats.NextId=nf.NumFmtId+1; } } //Fonts XmlNode fontNode = _styleXml.SelectSingleNode(FontsPath, _nameSpaceManager); foreach (XmlNode n in fontNode) { ExcelFontXml f = new ExcelFontXml(_nameSpaceManager, n); Fonts.Add(f.Id, f); } //Fills XmlNode fillNode = _styleXml.SelectSingleNode(FillsPath, _nameSpaceManager); foreach (XmlNode n in fillNode) { ExcelFillXml f; if (n.FirstChild != null && n.FirstChild.LocalName == "gradientFill") { f = new ExcelGradientFillXml(_nameSpaceManager, n); } else { f = new ExcelFillXml(_nameSpaceManager, n); } Fills.Add(f.Id, f); } //Borders XmlNode borderNode = _styleXml.SelectSingleNode(BordersPath, _nameSpaceManager); foreach (XmlNode n in borderNode) { ExcelBorderXml b = new ExcelBorderXml(_nameSpaceManager, n); Borders.Add(b.Id, b); } //cellStyleXfs XmlNode styleXfsNode = _styleXml.SelectSingleNode(CellStyleXfsPath, _nameSpaceManager); if (styleXfsNode != null) { foreach (XmlNode n in styleXfsNode) { ExcelXfs item = new ExcelXfs(_nameSpaceManager, n, this); CellStyleXfs.Add(item.Id, item); } } XmlNode styleNode = _styleXml.SelectSingleNode(CellXfsPath, _nameSpaceManager); for (int i = 0; i < styleNode.ChildNodes.Count; i++) { XmlNode n = styleNode.ChildNodes[i]; ExcelXfs item = new ExcelXfs(_nameSpaceManager, n, this); CellXfs.Add(item.Id, item); } //cellStyle XmlNode namedStyleNode = _styleXml.SelectSingleNode(CellStylesPath, _nameSpaceManager); if (namedStyleNode != null) { foreach (XmlNode n in namedStyleNode) { ExcelNamedStyleXml item = new ExcelNamedStyleXml(_nameSpaceManager, n, this); NamedStyles.Add(item.Name, item); } } //dxfsPath XmlNode dxfsNode = _styleXml.SelectSingleNode(dxfsPath, _nameSpaceManager); if (dxfsNode != null) { foreach (XmlNode x in dxfsNode) { ExcelDxfStyleConditionalFormatting item = new ExcelDxfStyleConditionalFormatting(_nameSpaceManager, x, this); Dxfs.Add(item.Id, item); } } }