//internal ExcelBarChart(ExcelDrawings drawings, XmlNode node) : // base(drawings, node/*, 1*/) //{ // SetChartNodeText(""); //} //internal ExcelBarChart(ExcelDrawings drawings, XmlNode node, eChartType type) : // base(drawings, node, type) //{ // SetChartNodeText(""); // SetTypeProperties(drawings, type); //} internal ExcelBarChart(ExcelDrawings drawings, XmlNode node, eChartType type, ExcelChart topChart, ExcelPivotTable PivotTableSource) : base(drawings, node, type, topChart, PivotTableSource) { SetChartNodeText(""); SetTypeProperties(drawings, type); }
internal ExcelBubbleChart(ExcelDrawings drawings, XmlNode node, eChartType type, ExcelChart topChart, ExcelPivotTable PivotTableSource) : base(drawings, node, type, topChart, PivotTableSource) { ShowNegativeBubbles = false; BubbleScale = 100; _chartSeries = new ExcelBubbleChartSeries(this, drawings.NameSpaceManager, _chartNode, PivotTableSource!=null); //SetTypeProperties(); }
private string AddMarker(eChartType chartType) { if (chartType == eChartType.Line || chartType == eChartType.LineStacked || chartType == eChartType.LineStacked100 || chartType == eChartType.XYScatterLines || chartType == eChartType.XYScatterSmooth || chartType == eChartType.XYScatterLinesNoMarkers || chartType == eChartType.XYScatterSmoothNoMarkers) { return("<c:marker><c:symbol val=\"none\" /></c:marker>"); } else { return(""); } }
/// <summary> /// Add a new charttype to the chart /// </summary> /// <param name="chartType">The type of the new chart</param> /// <returns></returns> public ExcelChart Add(eChartType chartType) { if (_topChart.PivotTableSource != null) { throw (new InvalidOperationException("Can not add other charttypes to a pivot chart")); } else if (ExcelChart.IsType3D(chartType) || _list[0].IsType3D()) { throw(new InvalidOperationException("3D charts can not be combined with other charttypes")); } var prependingChartNode = _list[_list.Count - 1].TopNode; ExcelChart chart = ExcelChart.GetNewChart(_topChart.WorkSheet.Drawings, _topChart.TopNode, chartType, _topChart, null); _list.Add(chart); return(chart); }
private static string AddAxisNodes(eChartType chartType) { if (chartType == eChartType.XYScatter || chartType == eChartType.XYScatterLines || chartType == eChartType.XYScatterLinesNoMarkers || chartType == eChartType.XYScatterSmooth || chartType == eChartType.XYScatterSmoothNoMarkers || chartType == eChartType.Bubble || chartType == eChartType.Bubble3DEffect) { return("<c:xVal /><c:yVal />"); } else { return("<c:val />"); } }
internal static XmlElement CreateSeriesElement(ExcelChartEx chart, eChartType type, int index, XmlNode referenceNode = null, bool isPareto = false) { var plotareaNode = chart._chartXmlHelper.CreateNode("cx:plotArea/cx:plotAreaRegion"); var ser = plotareaNode.OwnerDocument.CreateElement("cx", "series", ExcelPackage.schemaChartExMain); XmlNodeList node = plotareaNode.SelectNodes("cx:series", chart.NameSpaceManager); if (node.Count > 0) { plotareaNode.InsertAfter(ser, referenceNode ?? node[node.Count - 1]); } else { var f = XmlHelperFactory.Create(chart.NameSpaceManager, plotareaNode); f.InserAfter(plotareaNode, "cx:plotSurface", ser); } ser.SetAttribute("formatIdx", index.ToString()); ser.SetAttribute("uniqueId", "{" + Guid.NewGuid().ToString() + "}"); ser.SetAttribute("layoutId", GetLayoutId(type, isPareto)); return(ser); }
/// <summary> /// Returns true if the chart is a 3D chart /// </summary> /// <param name="chartType">The charttype to tests</param> /// <returns>True if the chart is a 3D chart</returns> internal static bool IsType3D(eChartType chartType) { return(chartType == eChartType.Area3D || chartType == eChartType.AreaStacked3D || chartType == eChartType.AreaStacked1003D || chartType == eChartType.BarClustered3D || chartType == eChartType.BarStacked3D || chartType == eChartType.BarStacked1003D || chartType == eChartType.Column3D || chartType == eChartType.ColumnClustered3D || chartType == eChartType.ColumnStacked3D || chartType == eChartType.ColumnStacked1003D || chartType == eChartType.Line3D || chartType == eChartType.Pie3D || chartType == eChartType.PieExploded3D || chartType == eChartType.ConeBarClustered || chartType == eChartType.ConeBarStacked || chartType == eChartType.ConeBarStacked100 || chartType == eChartType.ConeCol || chartType == eChartType.ConeColClustered || chartType == eChartType.ConeColStacked || chartType == eChartType.ConeColStacked100 || chartType == eChartType.CylinderBarClustered || chartType == eChartType.CylinderBarStacked || chartType == eChartType.CylinderBarStacked100 || chartType == eChartType.CylinderCol || chartType == eChartType.CylinderColClustered || chartType == eChartType.CylinderColStacked || chartType == eChartType.CylinderColStacked100 || chartType == eChartType.PyramidBarClustered || chartType == eChartType.PyramidBarStacked || chartType == eChartType.PyramidBarStacked100 || chartType == eChartType.PyramidCol || chartType == eChartType.PyramidColClustered || chartType == eChartType.PyramidColStacked || chartType == eChartType.PyramidColStacked100 || chartType == eChartType.Surface || chartType == eChartType.SurfaceTopView || chartType == eChartType.SurfaceTopViewWireframe || chartType == eChartType.SurfaceWireframe); }
public ExcelChart AddChart(string chartTitle, eChartType chartType = eChartType.LineMarkers, string XLabel = "", string YLabel = "", int width = 300, int height = 300, bool logarithmic = false) { var ec = WorkSheet.Drawings.AddChart(chartTitle, chartType); ec.SetPosition(1, 0, 3, 0); ec.SetSize(width, height); ec.XAxis.Title.Text = XLabel; ec.YAxis.Title.Text = YLabel; ec.Legend.Position = eLegendPosition.Top; ec.XAxis.Title.Font.Size = 12; ec.YAxis.Title.Font.Size = 12; ec.Title.Font.Bold = false; ec.Title.Font.Size = 18; ec.Title.Text = chartTitle; if (logarithmic) { ec.XAxis.LogBase = 10; ec.YAxis.LogBase = 10; ec.XAxis.CrossesAt = 0; } return(ec); }
internal static void SetStockChartSeries(ExcelStockChart chart, eChartType chartType, string CategorySerie, string HighSerie, string LowSerie, string CloseSerie, string OpenSerie, string VolumeSerie) { chart.AddHighLowLines(); if (chartType == eChartType.StockOHLC || chartType == eChartType.StockVOHLC) { chart.AddUpDownBars(true, true); } if (chartType == eChartType.StockVHLC || chartType == eChartType.StockVOHLC) { chart.PlotArea.ChartTypes[0].Series.Add(VolumeSerie, CategorySerie); } if (chartType == eChartType.StockOHLC || chartType == eChartType.StockVOHLC) { chart.Series.Add(OpenSerie, CategorySerie); } chart.Series.Add(HighSerie, CategorySerie); chart.Series.Add(LowSerie, CategorySerie); chart.Series.Add(CloseSerie, CategorySerie); chart.StyleManager.SetChartStyle(ePresetChartStyle.StockChartStyle1); }
private ExcelChart AddBarChart(ExcelWorksheet ws, string NameChart, eChartType type, List <DataSerie> ListSeries) { ExcelBarChart chart = ws.Drawings.AddChart(NameChart, eChartType.ColumnClustered) as ExcelBarChart; chart.Title.Font.Size = 18; chart.Title.Font.Bold = true; chart.Legend.Remove(); chart.YAxis.Border.Fill.Style = eFillStyle.NoFill; chart.YAxis.Font.Size = 9; chart.XAxis.MajorTickMark = eAxisTickMark.None; chart.XAxis.MinorTickMark = eAxisTickMark.None; chart.YAxis.MajorTickMark = eAxisTickMark.None; chart.YAxis.MinorTickMark = eAxisTickMark.None; for (int i = 0; i < ListSeries.Count; i++) { DataSerie dat = ListSeries[i]; ExcelBarChartSerie ser = (ExcelBarChartSerie)(chart.Series.Add(dat.Series, dat.xSeries)); ser.DataLabel.ShowValue = true; ser.DataLabel.Position = eLabelPosition.OutEnd; ser.Header = dat.name; if (dat.name == "Move") { ser.DataLabel.Border.Fill.Color = Color.Red; ser.DataLabel.Border.LineStyle = eLineStyle.Solid; } } chart.YAxis.Format = string.Format("{0};{1}", "#,##0", "(#,##0)"); return(chart); }
public RChartType(XmlNode parent) { string _type = parent.Attributes["type"].Value; if (string.Equals(_type, "column")) { this.type = eChartType.ColumnStacked; } else if (string.Equals(_type, "line")) { this.type = eChartType.Line; } XmlNodeList nodes = ((XmlElement)parent).GetElementsByTagName("serie"); if (nodes != null && nodes.Count > 0) { this.series = new RSerie[nodes.Count]; for (int i = 0; i < nodes.Count; i++) { series[i] = new RSerie(nodes[i]); } } }
internal ExcelChart(ExcelDrawings drawings, XmlNode node, eChartType type, ExcelChart topChart, ExcelPivotTable PivotTableSource) : base(drawings, node, "xdr:graphicFrame/xdr:nvGraphicFramePr/xdr:cNvPr/@name") { ChartType = type; CreateNewChart(drawings, type, topChart); Init(drawings, _chartNode); _chartSeries = new ExcelChartSeries(this, drawings.NameSpaceManager, _chartNode, PivotTableSource!=null); if (PivotTableSource != null) SetPivotSource(PivotTableSource); SetTypeProperties(); if (topChart == null) LoadAxis(); else { _axis = topChart.Axis; if (_axis.Length > 0) { XAxis = _axis[0]; YAxis = _axis[1]; } } }
private string GetChartSerieStartXml(eChartType type, int axID, int xAxID, int serAxID) { StringBuilder xml = new StringBuilder(); xml.Append(AddScatterType(type)); xml.Append(AddRadarType(type)); xml.Append(AddBarDir(type)); xml.Append(AddGrouping()); xml.Append(AddVaryColors()); xml.Append(AddHasMarker(type)); xml.Append(AddShape(type)); xml.Append(AddFirstSliceAng(type)); xml.Append(AddHoleSize(type)); if (ChartType == eChartType.BarStacked100 || ChartType == eChartType.BarStacked || ChartType == eChartType.ColumnStacked || ChartType == eChartType.ColumnStacked100) { xml.Append("<c:overlap val=\"100\"/>"); } if (IsTypeSurface()) { xml.Append("<c:bandFmts/>"); } xml.Append(AddAxisId(axID, xAxID, serAxID)); return xml.ToString(); }
/// <summary> /// Add a new chart to the worksheet. /// Note that Bubble-, Radar-, Stock- and Surface charts are not supported. /// </summary> /// <param name="name">The name of the chart.</param> /// <param name="chartType">The type of chart.</param> /// <returns>Returns the newly created <see cref="ExcelChart"/>.</returns> public ExcelChart AddChart(string name, eChartType chartType) { return(this.AddChart(name, chartType, null)); }
internal static bool IsType3D(eChartType chartType) { return chartType == eChartType.Area3D || chartType == eChartType.AreaStacked3D || chartType == eChartType.AreaStacked1003D || chartType == eChartType.BarClustered3D || chartType == eChartType.BarStacked3D || chartType == eChartType.BarStacked1003D || chartType == eChartType.Column3D || chartType == eChartType.ColumnClustered3D || chartType == eChartType.ColumnStacked3D || chartType == eChartType.ColumnStacked1003D || chartType == eChartType.Line3D || chartType == eChartType.Pie3D || chartType == eChartType.PieExploded3D || chartType == eChartType.ConeBarClustered || chartType == eChartType.ConeBarStacked || chartType == eChartType.ConeBarStacked100 || chartType == eChartType.ConeCol || chartType == eChartType.ConeColClustered || chartType == eChartType.ConeColStacked || chartType == eChartType.ConeColStacked100 || chartType == eChartType.CylinderBarClustered || chartType == eChartType.CylinderBarStacked || chartType == eChartType.CylinderBarStacked100 || chartType == eChartType.CylinderCol || chartType == eChartType.CylinderColClustered || chartType == eChartType.CylinderColStacked || chartType == eChartType.CylinderColStacked100 || chartType == eChartType.PyramidBarClustered || chartType == eChartType.PyramidBarStacked || chartType == eChartType.PyramidBarStacked100 || chartType == eChartType.PyramidCol || chartType == eChartType.PyramidColClustered || chartType == eChartType.PyramidColStacked || chartType == eChartType.PyramidColStacked100 || chartType == eChartType.Surface || chartType == eChartType.SurfaceTopView || chartType == eChartType.SurfaceTopViewWireframe || chartType == eChartType.SurfaceWireframe; }
/// <summary> /// Add a new chart to the worksheet. /// Do not support Bubble-, Radar-, Stock- or Surface charts. /// </summary> /// <param name="Name"></param> /// <param name="ChartType">Type of chart</param> /// <returns></returns> public ExcelChart AddChart(string Name, eChartType ChartType) { if(_drawingNames.ContainsKey(Name.ToLower())) { throw new Exception("Name already exist in the drawings collection"); } if (ChartType == eChartType.Bubble || ChartType == eChartType.Bubble3DEffect || ChartType == eChartType.Radar || ChartType == eChartType.RadarFilled || ChartType == eChartType.RadarMarkers || ChartType == eChartType.StockHLC || ChartType == eChartType.StockOHLC || ChartType == eChartType.StockVOHLC || ChartType == eChartType.Surface || ChartType == eChartType.SurfaceTopView || ChartType == eChartType.SurfaceTopViewWireframe || ChartType == eChartType.SurfaceWireframe) { throw(new NotImplementedException("Chart type not supported in this version")); } XmlElement drawNode = CreateDrawingXml(); ExcelChart chart = GetNewChart(drawNode, ChartType); chart.Name = Name; _drawings.Add(chart); _drawingNames.Add(Name.ToLower(), _drawings.Count - 1); return chart; }
internal ExcelBarChart(ExcelDrawings drawings, XmlNode node, eChartType type, ExcelChart topChart, ExcelPivotTable PivotTableSource) : base(drawings, node, type, topChart, PivotTableSource) { SetChartNodeText(string.Empty); SetTypeProperties(drawings, type); }
//internal ExcelDoughnutChart(ExcelDrawings drawings, XmlNode node) : // base(drawings, node) //{ // SetPaths(); //} internal ExcelDoughnutChart(ExcelDrawings drawings, XmlNode node, eChartType type, bool isPivot) : base(drawings, node, type, isPivot) { //SetPaths(); }
/// <summary> /// Adds a chartsheet to the workbook. /// </summary> /// <param name="Name">The name of the worksheet</param> /// <param name="chartType">The type of chart</param> /// <param name="pivotTableSource">The pivottable source</param> /// <returns></returns> public ExcelChartsheet AddChart(string Name, eChartType chartType, ExcelPivotTable pivotTableSource) { return((ExcelChartsheet)AddSheet(Name, true, chartType, pivotTableSource)); }
internal ExcelBubbleChart(ExcelDrawings drawings, XmlNode node, eChartType type, bool isPivot) : base(drawings, node, type, isPivot) { _chartSeries = new ExcelBubbleChartSeries(this, drawings.NameSpaceManager, _chartNode, isPivot); //SetTypeProperties(); }
internal ExcelDoughnutChart(ExcelDrawings drawings, XmlNode node, eChartType type, bool isPivot, ExcelGroupShape parent = null) : base(drawings, node, type, isPivot, parent) { }
internal ExcelPieChart(ExcelDrawings drawings, XmlNode node, eChartType type, bool isPivot) : base(drawings, node, type, isPivot) { }
public IChart AddChart(string name, eChartType chartType) { return(new EPPlusChart(_drawings.AddChart(name, chartType))); }
private void SetTypeProperties(ExcelDrawings drawings, eChartType type) { /******* Bar direction *******/ if (type == eChartType.BarClustered || type == eChartType.BarStacked || type == eChartType.BarStacked100 || type == eChartType.BarClustered3D || type == eChartType.BarStacked3D || type == eChartType.BarStacked1003D || type == eChartType.ConeBarClustered || type == eChartType.ConeBarStacked || type == eChartType.ConeBarStacked100 || type == eChartType.CylinderBarClustered || type == eChartType.CylinderBarStacked || type == eChartType.CylinderBarStacked100 || type == eChartType.PyramidBarClustered || type == eChartType.PyramidBarStacked || type == eChartType.PyramidBarStacked100) { Direction = eDirection.Bar; } else if ( type == eChartType.ColumnClustered || type == eChartType.ColumnStacked || type == eChartType.ColumnStacked100 || type == eChartType.Column3D || type == eChartType.ColumnClustered3D || type == eChartType.ColumnStacked3D || type == eChartType.ColumnStacked1003D || type == eChartType.ConeCol || type == eChartType.ConeColClustered || type == eChartType.ConeColStacked || type == eChartType.ConeColStacked100 || type == eChartType.CylinderCol || type == eChartType.CylinderColClustered || type == eChartType.CylinderColStacked || type == eChartType.CylinderColStacked100 || type == eChartType.PyramidCol || type == eChartType.PyramidColClustered || type == eChartType.PyramidColStacked || type == eChartType.PyramidColStacked100) { Direction = eDirection.Column; } /****** Shape ******/ if (type == eChartType.ColumnClustered || type == eChartType.ColumnStacked || type == eChartType.ColumnStacked100 || type == eChartType.Column3D || type == eChartType.ColumnClustered3D || type == eChartType.ColumnStacked3D || type == eChartType.ColumnStacked1003D || type == eChartType.BarClustered || type == eChartType.BarStacked || type == eChartType.BarStacked100 || type == eChartType.BarClustered3D || type == eChartType.BarStacked3D || type == eChartType.BarStacked1003D) { Shape = eShape.Box; } else if ( type == eChartType.CylinderBarClustered || type == eChartType.CylinderBarStacked || type == eChartType.CylinderBarStacked100 || type == eChartType.CylinderCol || type == eChartType.CylinderColClustered || type == eChartType.CylinderColStacked || type == eChartType.CylinderColStacked100) { Shape = eShape.Cylinder; } else if ( type == eChartType.ConeBarClustered || type == eChartType.ConeBarStacked || type == eChartType.ConeBarStacked100 || type == eChartType.ConeCol || type == eChartType.ConeColClustered || type == eChartType.ConeColStacked || type == eChartType.ConeColStacked100) { Shape = eShape.Cone; } else if ( type == eChartType.PyramidBarClustered || type == eChartType.PyramidBarStacked || type == eChartType.PyramidBarStacked100 || type == eChartType.PyramidCol || type == eChartType.PyramidColClustered || type == eChartType.PyramidColStacked || type == eChartType.PyramidColStacked100) { Shape = eShape.Pyramid; } }
internal ExcelOfPieChart(ExcelDrawings drawings, XmlNode node, eChartType type, bool isPivot, ExcelGroupShape parent = null) : base(drawings, node, type, isPivot, parent) { SetTypeProperties(); }
private string AddFirstSliceAng(eChartType type) { if (type == eChartType.Doughnut || type == eChartType.DoughnutExploded) { return "<c:firstSliceAng val=\"0\" />"; } else { return ""; } }
internal ExcelDoughnutChart(ExcelDrawings drawings, XmlNode node, eChartType type, ExcelChart topChart, ExcelPivotTable PivotTableSource) : base(drawings, node, type, topChart, PivotTableSource) { //SetPaths(); }
private string AddHoleSize(eChartType type) { if (type == eChartType.Doughnut || type == eChartType.DoughnutExploded) { return "<c:holeSize val=\"50\" />"; } else { return ""; } }
internal ExcelPieChart(ExcelDrawings drawings, XmlNode node, eChartType type) : base(drawings, node, type) { //_varyColorsPath = string.Format(_varyColorsPath, GetChartNodeText()); }
private string AddRadarType(eChartType type) { if (type == eChartType.Radar || type == eChartType.RadarFilled|| type == eChartType.RadarMarkers) { return "<c:radarStyle val=\"\" />"; } else { return ""; } }
private ExcelChart GetNewChart(XmlNode drawNode, eChartType chartType) { switch(chartType) { case eChartType.Pie: case eChartType.PieExploded: case eChartType.Pie3D: case eChartType.PieExploded3D: return new ExcelPieChart(this, drawNode, chartType); case eChartType.BarOfPie: case eChartType.PieOfPie: return new ExcelOfPieChart(this, drawNode, chartType); case eChartType.Doughnut: case eChartType.DoughnutExploded: return new ExcelDoughnutChart(this, drawNode, chartType); case eChartType.BarClustered: case eChartType.BarStacked: case eChartType.BarStacked100: case eChartType.BarClustered3D: case eChartType.BarStacked3D: case eChartType.BarStacked1003D: case eChartType.ConeBarClustered: case eChartType.ConeBarStacked: case eChartType.ConeBarStacked100: case eChartType.CylinderBarClustered: case eChartType.CylinderBarStacked: case eChartType.CylinderBarStacked100: case eChartType.PyramidBarClustered: case eChartType.PyramidBarStacked: case eChartType.PyramidBarStacked100: case eChartType.ColumnClustered: case eChartType.ColumnStacked: case eChartType.ColumnStacked100: case eChartType.Column3D: case eChartType.ColumnClustered3D: case eChartType.ColumnStacked3D: case eChartType.ColumnStacked1003D: case eChartType.ConeCol: case eChartType.ConeColClustered: case eChartType.ConeColStacked: case eChartType.ConeColStacked100: case eChartType.CylinderCol: case eChartType.CylinderColClustered: case eChartType.CylinderColStacked: case eChartType.CylinderColStacked100: case eChartType.PyramidCol: case eChartType.PyramidColClustered: case eChartType.PyramidColStacked: case eChartType.PyramidColStacked100: return new ExcelBarChart(this, drawNode, chartType); case eChartType.XYScatter: case eChartType.XYScatterLines: case eChartType.XYScatterLinesNoMarkers: case eChartType.XYScatterSmooth: case eChartType.XYScatterSmoothNoMarkers: return new ExcelScatterChart(this, drawNode, chartType); default: return new ExcelChart(this, drawNode, chartType); } }
private string AddShape(eChartType type) { if (IsTypeShape()) { return "<c:shape val=\"box\" />"; } else { return ""; } }
private string AddBarDir(eChartType type) { if (IsTypeShape()) { return "<c:barDir val=\"col\" />"; } else { return ""; } }
private string ChartStartXml(eChartType type) { StringBuilder xml=new StringBuilder(); int axID=1; int xAxID=2; int serAxID = IsTypeSurface() ? 3 : -1; xml.Append("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>"); xml.AppendFormat("<c:chartSpace xmlns:c=\"{0}\" xmlns:a=\"{1}\" xmlns:r=\"{2}\">", ExcelPackage.schemaChart, ExcelPackage.schemaDrawings, ExcelPackage.schemaRelationships); xml.Append("<c:chart>"); xml.AppendFormat("{0}{1}<c:plotArea><c:layout/>",AddPerspectiveXml(type), AddSurfaceXml(type)); string chartNodeText = GetChartNodeText(); xml.AppendFormat("<{0}>", chartNodeText); xml.Append(GetChartSerieStartXml(type, axID, xAxID, serAxID)); xml.AppendFormat("</{0}>", chartNodeText); //Axis if (!IsTypePieDoughnut()) { if (IsTypeScatterBubble()) { xml.AppendFormat("<c:valAx><c:axId val=\"{0}\"/><c:scaling><c:orientation val=\"minMax\"/></c:scaling><c:delete val=\"0\"/><c:axPos val=\"b\"/><c:tickLblPos val=\"nextTo\"/><c:crossAx val=\"{1}\"/><c:crosses val=\"autoZero\"/></c:valAx>", axID, xAxID); } else { xml.AppendFormat("<c:catAx><c:axId val=\"{0}\"/><c:scaling><c:orientation val=\"minMax\"/></c:scaling><c:delete val=\"0\"/><c:axPos val=\"b\"/><c:tickLblPos val=\"nextTo\"/><c:crossAx val=\"{1}\"/><c:crosses val=\"autoZero\"/><c:auto val=\"1\"/><c:lblAlgn val=\"ctr\"/><c:lblOffset val=\"100\"/></c:catAx>", axID, xAxID); } xml.AppendFormat("<c:valAx><c:axId val=\"{1}\"/><c:scaling><c:orientation val=\"minMax\"/></c:scaling><c:delete val=\"0\"/><c:axPos val=\"l\"/><c:majorGridlines/><c:tickLblPos val=\"nextTo\"/><c:crossAx val=\"{0}\"/><c:crosses val=\"autoZero\"/><c:crossBetween val=\"between\"/></c:valAx>", axID, xAxID); if (serAxID==3) //Sureface Chart { xml.AppendFormat("<c:serAx><c:axId val=\"{0}\"/><c:scaling><c:orientation val=\"minMax\"/></c:scaling><c:delete val=\"0\"/><c:axPos val=\"b\"/><c:tickLblPos val=\"nextTo\"/><c:crossAx val=\"{1}\"/><c:crosses val=\"autoZero\"/></c:serAx>", serAxID, xAxID); } } xml.AppendFormat("</c:plotArea><c:legend><c:legendPos val=\"r\"/><c:layout/><c:overlay val=\"0\" /></c:legend><c:plotVisOnly val=\"1\"/></c:chart>", axID, xAxID); xml.Append("<c:printSettings><c:headerFooter/><c:pageMargins b=\"0.75\" l=\"0.7\" r=\"0.7\" t=\"0.75\" header=\"0.3\" footer=\"0.3\"/><c:pageSetup/></c:printSettings></c:chartSpace>"); return xml.ToString(); }
private string AddHasMarker(eChartType type) { if (type == eChartType.LineMarkers || type == eChartType.LineMarkersStacked || type == eChartType.LineMarkersStacked100 /*|| type == eChartType.XYScatterLines || type == eChartType.XYScatterSmooth*/) { return "<c:marker val=\"1\"/>"; } else { return ""; } }
/// <summary> /// Initialize a new Chart Sheet. /// </summary> /// <param name="ns">The namespace manager.</param> /// <param name="pck">The package that this chartsheet is contained in.</param> /// <param name="relID">The relID of the new sheet.</param> /// <param name="uriWorksheet">The URI to save the new sheet to.</param> /// <param name="sheetName">The name of the new sheet.</param> /// <param name="sheetID">The ID of the new sheet.</param> /// <param name="positionID">The index of the sheet in the Worksheets collection.</param> /// <param name="hidden">The <see cref="eWorkSheetHidden"/> state of the worksheet.</param> /// <param name="chartType">The <see cref="eChartType"/> of the new chart.</param> public ExcelChartsheet(XmlNamespaceManager ns, ExcelPackage pck, string relID, Uri uriWorksheet, string sheetName, int sheetID, int positionID, eWorkSheetHidden hidden, eChartType chartType) : base(ns, pck, relID, uriWorksheet, sheetName, sheetID, positionID, hidden) { this.Drawings.AddChart("Chart 1", chartType); }
private string AddPerspectiveXml(eChartType type) { //Add for 3D sharts if (IsType3D()) { return "<c:view3D><c:perspective val=\"30\" /></c:view3D>"; } else { return ""; } }
private string AddScatterType(eChartType type) { if (type == eChartType.XYScatter || type == eChartType.XYScatterLines || type == eChartType.XYScatterLinesNoMarkers || type == eChartType.XYScatterSmooth || type == eChartType.XYScatterSmoothNoMarkers) { return "<c:scatterStyle val=\"\" />"; } else { return ""; } }
private string AddSurfaceXml(eChartType type) { if (IsTypeSurface()) { return AddSurfacePart("floor") + AddSurfacePart("sideWall") + AddSurfacePart("backWall"); } else { return ""; } }
private string AddScatterPoint(eChartType chartType) { if (chartType == eChartType.XYScatter) { return "<c:spPr><a:ln w=\"28575\"><a:noFill /></a:ln></c:spPr>"; } else { return ""; } }
private void CreateNewChart(ExcelDrawings drawings, eChartType type, ExcelChart topChart) { if (topChart == null) { XmlElement graphFrame = TopNode.OwnerDocument.CreateElement("graphicFrame", ExcelPackage.schemaSheetDrawings); graphFrame.SetAttribute("macro", ""); TopNode.AppendChild(graphFrame); graphFrame.InnerXml = string.Format("<xdr:nvGraphicFramePr><xdr:cNvPr id=\"{0}\" name=\"Chart 1\" /><xdr:cNvGraphicFramePr /></xdr:nvGraphicFramePr><xdr:xfrm><a:off x=\"0\" y=\"0\" /> <a:ext cx=\"0\" cy=\"0\" /></xdr:xfrm><a:graphic><a:graphicData uri=\"http://schemas.openxmlformats.org/drawingml/2006/chart\"><c:chart xmlns:c=\"http://schemas.openxmlformats.org/drawingml/2006/chart\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" r:id=\"rId1\" /> </a:graphicData> </a:graphic>",_id); TopNode.AppendChild(TopNode.OwnerDocument.CreateElement("clientData", ExcelPackage.schemaSheetDrawings)); var package = drawings.Worksheet._package.Package; UriChart = GetNewUri(package, "/xl/charts/chart{0}.xml"); ChartXml = new XmlDocument(); ChartXml.PreserveWhitespace = ExcelPackage.preserveWhitespace; LoadXmlSafe(ChartXml, ChartStartXml(type), Encoding.UTF8); // save it to the package Part = package.CreatePart(UriChart, "application/vnd.openxmlformats-officedocument.drawingml.chart+xml", _drawings._package.Compression); StreamWriter streamChart = new StreamWriter(Part.GetStream(FileMode.Create, FileAccess.Write)); ChartXml.Save(streamChart); streamChart.Close(); package.Flush(); var chartRelation = drawings.Part.CreateRelationship(UriHelper.GetRelativeUri(drawings.UriDrawing, UriChart), Packaging.TargetMode.Internal, ExcelPackage.schemaRelationships + "/chart"); graphFrame.SelectSingleNode("a:graphic/a:graphicData/c:chart", NameSpaceManager).Attributes["r:id"].Value = chartRelation.Id; package.Flush(); _chartNode = ChartXml.SelectSingleNode(string.Format("c:chartSpace/c:chart/c:plotArea/{0}", GetChartNodeText()), NameSpaceManager); } else { ChartXml = topChart.ChartXml; Part = topChart.Part; _plotArea = topChart.PlotArea; UriChart = topChart.UriChart; _axis = topChart._axis; XmlNode preNode = _plotArea.ChartTypes[_plotArea.ChartTypes.Count - 1].ChartNode; _chartNode = ((XmlDocument)ChartXml).CreateElement(GetChartNodeText(), ExcelPackage.schemaChart); preNode.ParentNode.InsertAfter(_chartNode, preNode); if (topChart.Axis.Length == 0) { AddAxis(); } string serieXML = GetChartSerieStartXml(type, int.Parse(topChart.Axis[0].Id), int.Parse(topChart.Axis[1].Id), topChart.Axis.Length>2?int.Parse(topChart.Axis[2].Id) : -1); _chartNode.InnerXml = serieXML; } }
private string AddSmooth(eChartType chartType) { if (chartType == eChartType.XYScatterSmooth || chartType == eChartType.XYScatterSmoothNoMarkers) { return "<c:smooth val=\"1\" />"; //Default 25; } else { return ""; } }
internal ExcelChart(ExcelDrawings drawings, XmlNode node, eChartType type, bool isPivot) : base(drawings, node, "xdr:graphicFrame/xdr:nvGraphicFramePr/xdr:cNvPr/@name") { ChartType = type; CreateNewChart(drawings, type, null); Init(drawings, _chartNode); _chartSeries = new ExcelChartSeries(this, drawings.NameSpaceManager, _chartNode, isPivot); SetTypeProperties(); LoadAxis(); }
/// <summary> /// Add a new chart to the worksheet. /// Do not support Bubble-, Radar-, Stock- or Surface charts. /// </summary> /// <param name="Name"></param> /// <param name="ChartType">Type of chart</param> /// <returns>The chart</returns> public ExcelChart AddChart(string Name, eChartType ChartType) { return(AddChart(Name, ChartType, null)); }
internal static ExcelChart GetNewChart(ExcelDrawings drawings, XmlNode drawNode, eChartType chartType, ExcelChart topChart, ExcelPivotTable PivotTableSource) { switch(chartType) { case eChartType.Pie: case eChartType.PieExploded: case eChartType.Pie3D: case eChartType.PieExploded3D: return new ExcelPieChart(drawings, drawNode, chartType, topChart, PivotTableSource); case eChartType.BarOfPie: case eChartType.PieOfPie: return new ExcelOfPieChart(drawings, drawNode, chartType, topChart, PivotTableSource); case eChartType.Doughnut: case eChartType.DoughnutExploded: return new ExcelDoughnutChart(drawings, drawNode, chartType, topChart, PivotTableSource); case eChartType.BarClustered: case eChartType.BarStacked: case eChartType.BarStacked100: case eChartType.BarClustered3D: case eChartType.BarStacked3D: case eChartType.BarStacked1003D: case eChartType.ConeBarClustered: case eChartType.ConeBarStacked: case eChartType.ConeBarStacked100: case eChartType.CylinderBarClustered: case eChartType.CylinderBarStacked: case eChartType.CylinderBarStacked100: case eChartType.PyramidBarClustered: case eChartType.PyramidBarStacked: case eChartType.PyramidBarStacked100: case eChartType.ColumnClustered: case eChartType.ColumnStacked: case eChartType.ColumnStacked100: case eChartType.Column3D: case eChartType.ColumnClustered3D: case eChartType.ColumnStacked3D: case eChartType.ColumnStacked1003D: case eChartType.ConeCol: case eChartType.ConeColClustered: case eChartType.ConeColStacked: case eChartType.ConeColStacked100: case eChartType.CylinderCol: case eChartType.CylinderColClustered: case eChartType.CylinderColStacked: case eChartType.CylinderColStacked100: case eChartType.PyramidCol: case eChartType.PyramidColClustered: case eChartType.PyramidColStacked: case eChartType.PyramidColStacked100: return new ExcelBarChart(drawings, drawNode, chartType, topChart, PivotTableSource); case eChartType.XYScatter: case eChartType.XYScatterLines: case eChartType.XYScatterLinesNoMarkers: case eChartType.XYScatterSmooth: case eChartType.XYScatterSmoothNoMarkers: return new ExcelScatterChart(drawings, drawNode, chartType, topChart, PivotTableSource); case eChartType.Line: case eChartType.Line3D: case eChartType.LineMarkers: case eChartType.LineMarkersStacked: case eChartType.LineMarkersStacked100: case eChartType.LineStacked: case eChartType.LineStacked100: return new ExcelLineChart(drawings, drawNode, chartType, topChart, PivotTableSource); case eChartType.Bubble: case eChartType.Bubble3DEffect: return new ExcelBubbleChart(drawings, drawNode, chartType, topChart, PivotTableSource); case eChartType.Radar: case eChartType.RadarFilled: case eChartType.RadarMarkers: return new ExcelRadarChart(drawings, drawNode, chartType, topChart, PivotTableSource); case eChartType.Surface: case eChartType.SurfaceTopView: case eChartType.SurfaceTopViewWireframe: case eChartType.SurfaceWireframe: return new ExcelSurfaceChart(drawings, drawNode, chartType, topChart, PivotTableSource); default: return new ExcelChart(drawings, drawNode, chartType, topChart, PivotTableSource); } }
internal ExcelLineChart(ExcelDrawings drawings, XmlNode node, eChartType type, ExcelChart topChart, ExcelPivotTable PivotTableSource) : base(drawings, node, type, topChart, PivotTableSource) { Smooth = false; }
internal ExcelDoughnutChart(ExcelDrawings drawings, XmlNode node, eChartType type, ExcelChart topChart) : base(drawings, node, type, topChart) { //SetPaths(); }
/// <summary> /// Add Excell Chart To Sheet /// </summary> /// <typeparam name="ChartType"></typeparam> /// <param name="excelWorksheet"></param> /// <param name="chartName"></param> /// <param name="eChartType"></param> /// <returns></returns> public ChartType AddChart <ChartType>(ExcelWorksheet excelWorksheet, string chartName, eChartType eChartType) where ChartType : class { ChartType chartType = excelWorksheet.Drawings.AddChart(chartName, eChartType) as ChartType; return(chartType); }
internal ExcelLineChart(ExcelDrawings drawings, XmlNode node, eChartType type, bool isPivot) : base(drawings, node, type, isPivot) { //_chartTopPath = string.Format(_chartTopPath, GetChartNodeText()); }
internal ExcelLineChart(ExcelDrawings drawings, XmlNode node, eChartType type, ExcelChart topChart, ExcelPivotTable PivotTableSource) : base(drawings, node, type, topChart, PivotTableSource) { //_chartTopPath = string.Format(_chartTopPath, GetChartNodeText()); }
private void SetTypeProperties(ExcelDrawings drawings, eChartType type) { /******* Bar direction *******/ if (type == eChartType.BarClustered || type == eChartType.BarStacked || type == eChartType.BarStacked100 || type == eChartType.BarClustered3D || type == eChartType.BarStacked3D || type == eChartType.BarStacked1003D || type == eChartType.ConeBarClustered || type == eChartType.ConeBarStacked || type == eChartType.ConeBarStacked100 || type == eChartType.CylinderBarClustered || type == eChartType.CylinderBarStacked || type == eChartType.CylinderBarStacked100 || type == eChartType.PyramidBarClustered || type == eChartType.PyramidBarStacked || type == eChartType.PyramidBarStacked100) { Direction = eDirection.Bar; } else if ( type == eChartType.ColumnClustered || type == eChartType.ColumnStacked || type == eChartType.ColumnStacked100 || type == eChartType.Column3D || type == eChartType.ColumnClustered3D || type == eChartType.ColumnStacked3D || type == eChartType.ColumnStacked1003D || type == eChartType.ConeCol || type == eChartType.ConeColClustered || type == eChartType.ConeColStacked || type == eChartType.ConeColStacked100 || type == eChartType.CylinderCol || type == eChartType.CylinderColClustered || type == eChartType.CylinderColStacked || type == eChartType.CylinderColStacked100 || type == eChartType.PyramidCol || type == eChartType.PyramidColClustered || type == eChartType.PyramidColStacked || type == eChartType.PyramidColStacked100) { Direction = eDirection.Column; } /****** Shape ******/ if (/*type == eChartType.ColumnClustered || * type == eChartType.ColumnStacked || * type == eChartType.ColumnStacked100 ||*/ type == eChartType.Column3D || type == eChartType.ColumnClustered3D || type == eChartType.ColumnStacked3D || type == eChartType.ColumnStacked1003D || /*type == eChartType.BarClustered || * type == eChartType.BarStacked || * type == eChartType.BarStacked100 ||*/ type == eChartType.BarClustered3D || type == eChartType.BarStacked3D || type == eChartType.BarStacked1003D) { Shape = eShape.Box; } else if ( type == eChartType.CylinderBarClustered || type == eChartType.CylinderBarStacked || type == eChartType.CylinderBarStacked100 || type == eChartType.CylinderCol || type == eChartType.CylinderColClustered || type == eChartType.CylinderColStacked || type == eChartType.CylinderColStacked100) { Shape = eShape.Cylinder; } else if ( type == eChartType.ConeBarClustered || type == eChartType.ConeBarStacked || type == eChartType.ConeBarStacked100 || type == eChartType.ConeCol || type == eChartType.ConeColClustered || type == eChartType.ConeColStacked || type == eChartType.ConeColStacked100) { Shape = eShape.Cone; } else if ( type == eChartType.PyramidBarClustered || type == eChartType.PyramidBarStacked || type == eChartType.PyramidBarStacked100 || type == eChartType.PyramidCol || type == eChartType.PyramidColClustered || type == eChartType.PyramidColStacked || type == eChartType.PyramidColStacked100) { Shape = eShape.Pyramid; } }
internal ExcelScatterChart(ExcelDrawings drawings, XmlNode node, eChartType type, ExcelChart topChart, ExcelPivotTable PivotTableSource) : base(drawings, node, type, topChart, PivotTableSource) { SetTypeProperties(); }
//internal ExcelOfPieChart(ExcelDrawings drawings, XmlNode node) : // base(drawings, node) //{ //} internal ExcelOfPieChart(ExcelDrawings drawings, XmlNode node, eChartType type, bool isPivot) : base(drawings, node, type, isPivot) { SetTypeProperties(); }
internal ExcelSurfaceChart(ExcelDrawings drawings, XmlNode node, eChartType type, ExcelChart topChart, ExcelPivotTable PivotTableSource) : base(drawings, node, type, topChart, PivotTableSource) { Init(); }
internal ExcelBarChart(ExcelDrawings drawings, XmlNode node, eChartType type) : base(drawings, node, type) { SetChartNodeText(); SetTypeProperties(drawings, type); }