/// <summary> /// Create an Chart for this document /// </summary> public Chart() { // Create global xml Xml = XDocument.Parse (@"<?xml version=""1.0"" encoding=""UTF-8"" standalone=""yes""?> <c:chartSpace xmlns:c=""http://schemas.openxmlformats.org/drawingml/2006/chart"" xmlns:a=""http://schemas.openxmlformats.org/drawingml/2006/main"" xmlns:r=""http://schemas.openxmlformats.org/officeDocument/2006/relationships""> <c:roundedCorners val=""0""/> <c:chart> <c:autoTitleDeleted val=""0""/> <c:plotVisOnly val=""1""/> <c:dispBlanksAs val=""gap""/> <c:showDLblsOverMax val=""0""/> </c:chart> </c:chartSpace>"); // Create a real chart xml in an inheritor ChartXml = CreateChartXml(); // Create result plotarea element XElement plotAreaXml = new XElement( XName.Get("plotArea", DocX.c.NamespaceName), new XElement(XName.Get("layout", DocX.c.NamespaceName)), ChartXml); // Set labels XElement dLblsXml = XElement.Parse( @"<c:dLbls xmlns:c=""http://schemas.openxmlformats.org/drawingml/2006/chart""> <c:showLegendKey val=""0""/> <c:showVal val=""0""/> <c:showCatName val=""0""/> <c:showSerName val=""0""/> <c:showPercent val=""0""/> <c:showBubbleSize val=""0""/> <c:showLeaderLines val=""1""/> </c:dLbls>"); ChartXml.Add(dLblsXml); // if axes exists, create their if (IsAxisExist) { CategoryAxis = new CategoryAxis("148921728"); ValueAxis = new ValueAxis("154227840"); XElement axIDcatXml = XElement.Parse(String.Format( @"<c:axId val=""{0}"" xmlns:c=""http://schemas.openxmlformats.org/drawingml/2006/chart""/>", CategoryAxis.Id)); XElement axIDvalXml = XElement.Parse(String.Format( @"<c:axId val=""{0}"" xmlns:c=""http://schemas.openxmlformats.org/drawingml/2006/chart""/>", ValueAxis.Id)); // Sourceman: seems to be necessary to keep track of the order of elements as defined in the schema (Word 2013) var insertPoint = ChartXml.Element(XName.Get("gapWidth", DocX.c.NamespaceName)); if (insertPoint != null) { insertPoint.AddAfterSelf(axIDvalXml); insertPoint.AddAfterSelf(axIDcatXml); } else { ChartXml.Add(axIDcatXml); ChartXml.Add(axIDvalXml); } plotAreaXml.Add(CategoryAxis.Xml); plotAreaXml.Add(ValueAxis.Xml); } ChartRootXml = Xml.Root.Element(XName.Get("chart", DocX.c.NamespaceName)); //ChartRootXml.Add(plotAreaXml); ChartRootXml.Element(XName.Get("autoTitleDeleted", DocX.c.NamespaceName)).AddAfterSelf(plotAreaXml); }
/// <summary> /// Create an Chart for this document /// </summary> public Chart() { // Create global xml Xml = XDocument.Parse (@"<?xml version=""1.0"" encoding=""UTF-8"" standalone=""yes""?> <c:chartSpace xmlns:c=""http://schemas.openxmlformats.org/drawingml/2006/chart"" xmlns:a=""http://schemas.openxmlformats.org/drawingml/2006/main"" xmlns:r=""http://schemas.openxmlformats.org/officeDocument/2006/relationships""> <c:roundedCorners val=""0""/> <c:chart> <c:autoTitleDeleted val=""0""/> <c:plotVisOnly val=""1""/> <c:dispBlanksAs val=""gap""/> <c:showDLblsOverMax val=""0""/> </c:chart> </c:chartSpace>"); // Create a real chart xml in an inheritor ChartXml = CreateChartXml(); // Create result plotarea element XElement plotAreaXml = new XElement( XName.Get("plotArea", DocX.c.NamespaceName), new XElement(XName.Get("layout", DocX.c.NamespaceName)), ChartXml); // Set labels XElement dLblsXml = XElement.Parse( @"<c:dLbls xmlns:c=""http://schemas.openxmlformats.org/drawingml/2006/chart""> <c:showLegendKey val=""0""/> <c:showVal val=""0""/> <c:showCatName val=""0""/> <c:showSerName val=""0""/> <c:showPercent val=""0""/> <c:showBubbleSize val=""0""/> <c:showLeaderLines val=""1""/> </c:dLbls>"); ChartXml.Add(dLblsXml); // if axes exists, create their if (IsAxisExist) { CategoryAxis = new CategoryAxis("148921728"); ValueAxis = new ValueAxis("154227840"); XElement axIDcatXml = XElement.Parse(String.Format( @"<c:axId val=""{0}"" xmlns:c=""http://schemas.openxmlformats.org/drawingml/2006/chart""/>", CategoryAxis.Id)); XElement axIDvalXml = XElement.Parse(String.Format( @"<c:axId val=""{0}"" xmlns:c=""http://schemas.openxmlformats.org/drawingml/2006/chart""/>", ValueAxis.Id)); ChartXml.Add(axIDcatXml); ChartXml.Add(axIDvalXml); plotAreaXml.Add(CategoryAxis.Xml); plotAreaXml.Add(ValueAxis.Xml); } ChartRootXml = Xml.Root.Element(XName.Get("chart", DocX.c.NamespaceName)); ChartRootXml.Add(plotAreaXml); }