//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();
 }
Exemple #3
0
 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("");
     }
 }
Exemple #4
0
        /// <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);
        }
Exemple #5
0
 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 />");
     }
 }
Exemple #6
0
        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);
        }
Exemple #7
0
 /// <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);
 }
Exemple #8
0
        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);
        }
Exemple #9
0
        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);
        }
Exemple #10
0
        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);
        }
Exemple #11
0
        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]);
                }
            }
        }
Exemple #12
0
        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];
               }
               }
        }
Exemple #13
0
        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();
        }
Exemple #14
0
 /// <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));
 }
Exemple #15
0
 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;
 }
Exemple #16
0
        /// <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;
        }
Exemple #17
0
 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();
 }
Exemple #19
0
 /// <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));
 }
Exemple #20
0
 internal ExcelBubbleChart(ExcelDrawings drawings, XmlNode node, eChartType type, bool isPivot) :
     base(drawings, node, type, isPivot)
 {
     _chartSeries = new ExcelBubbleChartSeries(this, drawings.NameSpaceManager, _chartNode, isPivot);
     //SetTypeProperties();
 }
Exemple #21
0
 internal ExcelDoughnutChart(ExcelDrawings drawings, XmlNode node, eChartType type, bool isPivot, ExcelGroupShape parent = null) :
     base(drawings, node, type, isPivot, parent)
 {
 }
Exemple #22
0
 internal ExcelPieChart(ExcelDrawings drawings, XmlNode node, eChartType type, bool isPivot) :
     base(drawings, node, type, isPivot)
 {
 }
Exemple #23
0
 public IChart AddChart(string name, eChartType chartType)
 {
     return(new EPPlusChart(_drawings.AddChart(name, chartType)));
 }
Exemple #24
0
        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;
            }
        }
Exemple #25
0
 internal ExcelOfPieChart(ExcelDrawings drawings, XmlNode node, eChartType type, bool isPivot, ExcelGroupShape parent = null) :
     base(drawings, node, type, isPivot, parent)
 {
     SetTypeProperties();
 }
Exemple #26
0
 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();
 }        
Exemple #28
0
 private string AddHoleSize(eChartType type)
 {
     if (type == eChartType.Doughnut ||
        type == eChartType.DoughnutExploded)
        {
        return "<c:holeSize val=\"50\" />";
        }
        else
        {
        return "";
        }
 }
Exemple #29
0
 internal ExcelPieChart(ExcelDrawings drawings, XmlNode node, eChartType type)
     : base(drawings, node, type)
 {
     //_varyColorsPath = string.Format(_varyColorsPath, GetChartNodeText());
 }
Exemple #30
0
 private string AddRadarType(eChartType type)
 {
     if (type == eChartType.Radar ||
        type == eChartType.RadarFilled||
        type == eChartType.RadarMarkers)
        {
        return "<c:radarStyle val=\"\" />";
        }
        else
        {
        return "";
        }
 }
Exemple #31
0
 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);
         }
 }
Exemple #32
0
 private string AddShape(eChartType type)
 {
     if (IsTypeShape())
        {
        return "<c:shape val=\"box\" />";
        }
        else
        {
        return "";
        }
 }
Exemple #33
0
 private string AddBarDir(eChartType type)
 {
     if (IsTypeShape())
     {
         return "<c:barDir val=\"col\" />";
     }
     else
     {
         return "";
     }
 }
Exemple #34
0
        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();
        }
Exemple #35
0
 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 "";
        }
 }
Exemple #36
0
 /// <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);
 }
Exemple #37
0
 private string AddPerspectiveXml(eChartType type)
 {
     //Add for 3D sharts
     if (IsType3D())
     {
         return "<c:view3D><c:perspective val=\"30\" /></c:view3D>";
     }
     else
     {
         return "";
     }
 }
Exemple #38
0
 //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();
 }
Exemple #39
0
 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 "";
        }
 }
Exemple #40
0
 internal ExcelDoughnutChart(ExcelDrawings drawings, XmlNode node, eChartType type, ExcelChart topChart, ExcelPivotTable PivotTableSource) :
     base(drawings, node, type, topChart, PivotTableSource)
 {
     //SetPaths();
 }
Exemple #41
0
 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 "";
        }
 }
Exemple #43
0
        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 "";
        }
 }
Exemple #45
0
        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));
 }
Exemple #47
0
 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);
     }
 }
Exemple #48
0
 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);
        }
Exemple #51
0
 internal ExcelLineChart(ExcelDrawings drawings, XmlNode node, eChartType type, bool isPivot)
     : base(drawings, node, type, isPivot)
 {
     //_chartTopPath = string.Format(_chartTopPath, GetChartNodeText());
 }
Exemple #52
0
 internal ExcelLineChart(ExcelDrawings drawings, XmlNode node, eChartType type, ExcelChart topChart, ExcelPivotTable PivotTableSource)
     : base(drawings, node, type, topChart, PivotTableSource)
 {
     //_chartTopPath = string.Format(_chartTopPath, GetChartNodeText());
 }
Exemple #53
0
        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();
 }
Exemple #55
0
        //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();
        }
Exemple #56
0
 internal ExcelSurfaceChart(ExcelDrawings drawings, XmlNode node, eChartType type, ExcelChart topChart, ExcelPivotTable PivotTableSource) :
     base(drawings, node, type, topChart, PivotTableSource)
 {
     Init();
 }
Exemple #57
-1
        internal ExcelBarChart(ExcelDrawings drawings, XmlNode node, eChartType type)
            : base(drawings, node, type)
        {
            SetChartNodeText();

            SetTypeProperties(drawings, type);
        }