/// <summary> /// Fills a <see cref="OfficeOpenXml.Drawing.ExcelDrawingBorder"/> object with model data. /// </summary> /// <param name="border"><see cref="OfficeOpenXml.Drawing.ExcelDrawingBorder"/> object.</param> /// <param name="element">Chart element.</param> /// <param name="model">Chart border model definition.</param> /// <exception cref="T:System.ArgumentNullException">If <paramref name="border" /> is <c>null</c>.</exception> /// <exception cref="T:System.ArgumentNullException">If <paramref name="model" /> is <c>null</c>.</exception> /// <exception cref="T:System.ComponentModel.InvalidEnumArgumentException">The value specified is outside the range of valid values.</exception> public static void FormatFromModel(this ExcelDrawingBorder border, KnownChartElement element, ChartBorderModel model) { SentinelHelper.IsEnumValid(element); SentinelHelper.ArgumentNull(model); SentinelHelper.ArgumentNull(border); if (model.Show == YesNo.Yes) { border.Fill.Color = model.GetColor(); border.Width = model.Width.ToEppBorderWidth(); border.LineStyle = model.Style.ToEppLineStyle(); } if (model.Shadow.Show == YesNo.No) { return; } var root = ChartXmlHelper.FromKnownChartElement(element); var exist = ChartXmlHelper.TryGetElementFrom(root, "c:spPr", out var shapePropertiesNode); shapePropertiesNode.AddEffectContainerNode(model.Shadow); if (!exist) { root.AppendChild(shapePropertiesNode); } }
/// <summary> /// Adds major, minor or both grid lines to the specified axis. Not supported in <c>EPPlus</c> library. /// </summary> /// <param name="axis"><c>Xml</c> node than represent an axis definition.</param> /// <param name="model">A <see cref="KnownPlotGridLine" /> value from model.</param> /// <exception cref="T:System.ArgumentNullException">If <paramref name="axis" /> is <c>null</c>.</exception> /// <exception cref="T:System.InvalidOperationException">If <paramref name="axis" /> is not an axis.</exception> /// <exception cref="T:System.ComponentModel.InvalidEnumArgumentException">The value specified is outside the range of valid values.</exception> public static void AddAxisGridLinesMode(this XmlNode axis, KnownPlotGridLine model) { SentinelHelper.ArgumentNull(axis); SentinelHelper.IsEnumValid(model); SentinelHelper.IsFalse(axis.Name.Contains("catAx") || axis.Name.Contains("valAx") || axis.Name.Contains("dateAx"), "Imposible extraer tipo. el nodo no es de tipo eje"); var existMajorGridLinesNode = ChartXmlHelper.TryGetElementFrom(axis, "c:majorGridlines", out var majorGridLinesElement); if (existMajorGridLinesNode) { var parent = majorGridLinesElement.ParentNode; parent.RemoveChild(majorGridLinesElement); } var existMinorGridLinesNode = ChartXmlHelper.TryGetElementFrom(axis, "c:minorGridlines", out var minorGridLinesElement); if (existMinorGridLinesNode) { var parent = minorGridLinesElement.ParentNode; parent.RemoveChild(minorGridLinesElement); } switch (model) { case KnownPlotGridLine.None: break; case KnownPlotGridLine.Major: axis.AppendChild(majorGridLinesElement); break; case KnownPlotGridLine.Minor: axis.AppendChild(minorGridLinesElement); break; case KnownPlotGridLine.Both: axis.AppendChild(majorGridLinesElement); axis.AppendChild(minorGridLinesElement); break; } }