public IChartVisual AppendChartVisual(string name) { ChartPart chartPart = this.container.Part.AddNewPartDefaultId <ChartPart>(); chartPart.ChartSpace = new Charts.ChartSpace() { Date1904 = new Charts.Date1904() { Val = false } } .AppendChildFluent( new Charts.Chart() { PlotArea = new Charts.PlotArea(), DisplayBlanksAs = new Charts.DisplayBlanksAs() { Val = Charts.DisplayBlanksAsValues.Gap } } ); Charts.Chart chart = new Charts.Chart(); chart.SetAttribute(new OpenXmlAttribute("r", "id", "http://schemas.openxmlformats.org/officeDocument/2006/relationships", this.container.Part.GetIdOfPart(chartPart))); GraphicFrame graphicFrame = this.shapeTree.AppendChild(new GraphicFrame() { NonVisualGraphicFrameProperties = new NonVisualGraphicFrameProperties() { NonVisualDrawingProperties = new NonVisualDrawingProperties() { Name = name, Id = 6 // TODO: calculate }, NonVisualGraphicFrameDrawingProperties = new NonVisualGraphicFrameDrawingProperties(), ApplicationNonVisualDrawingProperties = new ApplicationNonVisualDrawingProperties() }, Graphic = new Drawing.Graphic() { GraphicData = new Drawing.GraphicData() { Uri = "http://schemas.openxmlformats.org/drawingml/2006/chart" } .AppendChildFluent(chart) } }); return(new OpenXmlChartVisual(this.container, graphicFrame)); }