Exemplo n.º 1
0
        internal static ExcelChart GetChart(ExcelDrawings drawings, XmlNode node, ExcelGroupShape parent = null)
        {
            XmlNode chartNode;

            if (parent == null)
            {
                chartNode = node.SelectSingleNode("xdr:graphicFrame/a:graphic/a:graphicData/c:chart", drawings.NameSpaceManager);
            }
            else
            {
                chartNode = node.SelectSingleNode("a:graphic/a:graphicData/c:chart", drawings.NameSpaceManager);
            }

            if (chartNode != null)
            {
                var drawingRelation = drawings.Part.GetRelationship(chartNode.Attributes["r:id"].Value);
                var uriChart        = UriHelper.ResolvePartUri(drawings.UriDrawing, drawingRelation.TargetUri);

                var part     = drawings.Part.Package.GetPart(uriChart);
                var chartXml = new XmlDocument();
                LoadXmlSafe(chartXml, part.GetStream());

                return(CreateChartFromXml(drawings, node, uriChart, part, chartXml, parent));
            }
            else
            {
                return(null);
            }
        }
Exemplo n.º 2
0
 internal ExcelChartStandard(ExcelChart topChart, XmlNode chartNode, ExcelGroupShape parent, string drawingPath = "xdr:graphicFrame", string nvPrPath = "xdr:nvGraphicFramePr/xdr:cNvPr") :
     base(topChart, chartNode, parent, drawingPath, nvPrPath)
 {
     UriChart   = topChart.UriChart;
     Part       = topChart.Part;
     ChartXml   = topChart.ChartXml;
     _plotArea  = topChart.PlotArea;
     _chartNode = chartNode;
     InitSeries(this, topChart._drawings.NameSpaceManager, _chartNode, false);
     InitChartLoad(topChart._drawings, chartNode);
 }
Exemplo n.º 3
0
        internal ExcelPivotTableSlicer(ExcelDrawings drawings, XmlNode node, ExcelGroupShape parent = null) : base(drawings, node, parent)
        {
            _ws = drawings.Worksheet;
            var slicerNode = _ws.SlicerXmlSources.GetSource(Name, eSlicerSourceType.PivotTable, out _xmlSource);

            _slicerXmlHelper = XmlHelperFactory.Create(NameSpaceManager, slicerNode);

            var cache = (ExcelPivotTableSlicerCache)drawings.Worksheet.Workbook.GetSlicerCaches(CacheName);

            cache.Init(drawings.Worksheet.Workbook, this);
            _cache = cache;
        }
Exemplo n.º 4
0
        internal ExcelTableSlicer(ExcelDrawings drawings, XmlNode node, ExcelGroupShape parent = null) : base(drawings, node, parent)
        {
            _ws = drawings.Worksheet;
            var slicerNode = _ws.SlicerXmlSources.GetSource(Name, eSlicerSourceType.Table, out _xmlSource);

            _slicerXmlHelper = XmlHelperFactory.Create(NameSpaceManager, slicerNode);

            _ws.Workbook.SlicerCaches.TryGetValue(CacheName, out ExcelSlicerCache cache);
            _cache = (ExcelTableSlicerCache)cache;

            TableColumn = GetTableColumn();
        }
Exemplo n.º 5
0
 internal ExcelChart(ExcelChart topChart, XmlNode chartNode, ExcelGroupShape parent, string drawingPath = "xdr:graphicFrame", string nvPrPath = "xdr:nvGraphicFramePr/xdr:cNvPr") :
     base(topChart._drawings, topChart.TopNode, drawingPath, nvPrPath, parent)
 {
 }
Exemplo n.º 6
0
 internal ExcelChart(ExcelDrawings drawings, XmlNode drawingsNode, XmlDocument chartXml = null, ExcelGroupShape parent = null, string drawingPath = "xdr:graphicFrame", string nvPrPath = "xdr:nvGraphicFramePr/xdr:cNvPr") :
     base(drawings, drawingsNode, drawingPath, nvPrPath, parent)
 {
     Init(drawings, chartXml);
 }
Exemplo n.º 7
0
 internal ExcelControlEditBox(ExcelDrawings drawings, XmlNode drawNode, ControlInternal control, ZipPackagePart part, XmlDocument controlPropertiesXml, ExcelGroupShape parent = null)
     : base(drawings, drawNode, control, part, controlPropertiesXml, parent)
 {
 }
Exemplo n.º 8
0
 internal ExcelStandardChartWithLines(ExcelChart topChart, XmlNode chartNode, ExcelGroupShape parent = null) :
     base(topChart, chartNode, parent)
 {
 }
Exemplo n.º 9
0
 internal ExcelLineChart(ExcelChart topChart, XmlNode chartNode, ExcelGroupShape parent = null) :
     base(topChart, chartNode, parent)
 {
 }
Exemplo n.º 10
0
 internal ExcelScatterChart(ExcelChart topChart, XmlNode chartNode, ExcelGroupShape parent) :
     base(topChart, chartNode, parent)
 {
     SetTypeProperties();
 }
Exemplo n.º 11
0
        internal static ExcelChart CreateChartFromXml(ExcelDrawings drawings, XmlNode node, Uri uriChart, ZipPackagePart part, XmlDocument chartXml, ExcelGroupShape parent = null)
        {
            ExcelChart topChart = null;

            foreach (XmlElement n in chartXml.SelectSingleNode(topPath + "/" + plotAreaPath, drawings.NameSpaceManager).ChildNodes)
            {
                if (n.LocalName.EndsWith("Chart"))
                {
                    if (topChart == null)
                    {
                        if (part == null)
                        {
                            topChart = GetChart(drawings, node);
                        }
                        else
                        {
                            topChart = GetChart(n, drawings, node, uriChart, part, chartXml, null, parent);
                        }
                    }
                    else
                    {
                        var subChart = GetChart(n, null, null, null, null, null, topChart, parent);
                        if (subChart != null)
                        {
                            topChart.PlotArea.ChartTypes.Add(subChart);
                        }
                    }
                }
            }
            return(topChart);
        }
Exemplo n.º 12
0
 internal ExcelScatterChart(ExcelDrawings drawings, XmlNode node, eChartType?type, ExcelChart topChart, ExcelPivotTable PivotTableSource, XmlDocument chartXml, ExcelGroupShape parent = null) :
     base(drawings, node, type, topChart, PivotTableSource, chartXml, parent)
 {
     SetTypeProperties();
 }
Exemplo n.º 13
0
 internal ExcelScatterChart(ExcelDrawings drawings, XmlNode node, Uri uriChart, Packaging.ZipPackagePart part, XmlDocument chartXml, XmlNode chartNode, ExcelGroupShape parent) :
     base(drawings, node, uriChart, part, chartXml, chartNode, parent)
 {
     SetTypeProperties();
 }
Exemplo n.º 14
0
 internal ExcelBarChart(ExcelChart topChart, XmlNode chartNode, ExcelGroupShape parent = null) :
     base(topChart, chartNode, parent)
 {
     SetChartNodeText(chartNode.Name);
 }
Exemplo n.º 15
0
 internal ExcelBarChart(ExcelDrawings drawings, XmlNode node, Uri uriChart, Packaging.ZipPackagePart part, XmlDocument chartXml, XmlNode chartNode, ExcelGroupShape parent = null) :
     base(drawings, node, uriChart, part, chartXml, chartNode, parent)
 {
     SetChartNodeText(chartNode.Name);
 }
Exemplo n.º 16
0
 internal ExcelBarChart(ExcelDrawings drawings, XmlNode node, eChartType?type, ExcelChart topChart, ExcelPivotTable PivotTableSource, XmlDocument chartXml, ExcelGroupShape parent = null) :
     base(drawings, node, type, topChart, PivotTableSource, chartXml, parent)
 {
     SetChartNodeText("");
     if (type.HasValue)
     {
         SetTypeProperties(drawings, type.Value);
     }
 }
Exemplo n.º 17
0
 internal ExcelStockChart(ExcelDrawings drawings, XmlNode node, eChartType?type, ExcelChart topChart, ExcelPivotTable PivotTableSource, XmlDocument chartXml, ExcelGroupShape parent = null) :
     base(drawings, node, type, topChart, PivotTableSource, chartXml, parent)
 {
     if (type == eChartType.StockVHLC || type == eChartType.StockVOHLC)
     {
         var barChart = new ExcelBarChart(this, _chartNode.PreviousSibling, parent);
         barChart.Direction = eDirection.Column;
         _plotArea          = new ExcelChartPlotArea(NameSpaceManager, ChartXml.SelectSingleNode("c:chartSpace/c:chart/c:plotArea", NameSpaceManager), barChart, "c", this);
     }
 }
Exemplo n.º 18
0
        //internal ExcelPivotTableField _field;
        internal ExcelPivotTableSlicer(ExcelDrawings drawings, XmlNode node, ExcelPivotTableField field, ExcelGroupShape parent = null) : base(drawings, node, parent)
        {
            _ws = drawings.Worksheet;
            //_field = field;
            var name = drawings.Worksheet.Workbook.GetSlicerName(field.Cache.Name);

            CreateDrawing(name);

            SlicerName = name;
            Caption    = field.Name;
            RowHeight  = 19;
            if (field.Slicer == null)
            {
                CacheName = "Slicer_" + ExcelAddressUtil.GetValidName(name);

                var cache = new ExcelPivotTableSlicerCache(NameSpaceManager);
                if (field.Slicer == null)
                {
                    field.Slicer = this;
                }
                cache.Init(drawings.Worksheet.Workbook, name, field);
                _cache = cache;
            }
            else
            {
                CacheName = field.Slicer.Cache.Name;
                _cache    = field.Slicer.Cache;
            }

            //If items has not been init, refresh!
            if (field._items == null)
            {
                field.Items.Refresh();
            }
        }
Exemplo n.º 19
0
        internal static ExcelChartEx GetChartEx(ExcelDrawings drawings, XmlNode node, ExcelGroupShape parent = null)
        {
            XmlNode chartDrawingNode = node.SelectSingleNode("mc:AlternateContent/mc:Choice[@Requires='cx1' or @Requires='cx2']/xdr:graphicFrame/a:graphic/a:graphicData/cx:chart", drawings.NameSpaceManager);

            if (chartDrawingNode != null)
            {
                var drawingRelation = drawings.Part.GetRelationship(chartDrawingNode.Attributes["r:id"].Value);
                var uriChart        = UriHelper.ResolvePartUri(drawings.UriDrawing, drawingRelation.TargetUri);

                var part     = drawings.Part.Package.GetPart(uriChart);
                var chartXml = new XmlDocument();
                LoadXmlSafe(chartXml, part.GetStream());

                var chartNode = chartXml.SelectSingleNode("cx:chartSpace/cx:chart", drawings.NameSpaceManager);
                var layoutId  = chartNode.SelectSingleNode("cx:plotArea/cx:plotAreaRegion/cx:series[1]/@layoutId", drawings.NameSpaceManager);
                if (layoutId == null)
                {
                    return(new ExcelTreemapChart(drawings, node, uriChart, part, chartXml, chartNode));
                }
                switch (layoutId.Value)
                {
                case "treemap":
                    return(new ExcelTreemapChart(drawings, node, uriChart, part, chartXml, chartNode));

                case "sunburst":
                    return(new ExcelSunburstChart(drawings, node, uriChart, part, chartXml, chartNode));

                case "boxWhisker":
                    return(new ExcelBoxWhiskerChart(drawings, node, uriChart, part, chartXml, chartNode));

                case "clusteredColumn":
                case "pareto":
                    return(new ExcelHistogramChart(drawings, node, uriChart, part, chartXml, chartNode));

                case "funnel":
                    return(new ExcelFunnelChart(drawings, node, uriChart, part, chartXml, chartNode));

                case "waterfall":
                    return(new ExcelWaterfallChart(drawings, node, uriChart, part, chartXml, chartNode));

                case "regionMap":
                    return(new ExcelRegionMapChart(drawings, node, uriChart, part, chartXml, chartNode));

                default:
                    throw new NotSupportedException($"Unsupported chart layout {layoutId.Value}");
                }
            }
            else
            {
                return(null);
            }
        }
Exemplo n.º 20
0
        internal ExcelPivotTableSlicer(ExcelDrawings drawings, XmlNode node, ExcelPivotTableSlicerCache cache, ExcelGroupShape parent = null) : base(drawings, node, parent)
        {
            _ws = drawings.Worksheet;
            var name = drawings.Worksheet.Workbook.GetSlicerName(Cache.Name);

            CreateDrawing(name);

            SlicerName = name;
            Caption    = name;
            RowHeight  = 19;
            CacheName  = Cache.Name;
            _cache     = cache;

            //If items has not been init, refresh!
            if (cache._field._items == null)
            {
                cache._field.Items.Refresh();
            }
        }
Exemplo n.º 21
0
 internal ExcelStandardChartWithLines(ExcelDrawings drawings, XmlNode node, Uri uriChart, Packaging.ZipPackagePart part, XmlDocument chartXml, XmlNode chartNode, ExcelGroupShape parent = null) :
     base(drawings, node, uriChart, part, chartXml, chartNode, parent)
 {
 }
Exemplo n.º 22
0
 internal ExcelControlWithText(ExcelDrawings drawings, XmlNode drawingNode, ControlInternal control, ZipPackagePart part, XmlDocument ctrlPropXml, ExcelGroupShape parent = null) :
     base(drawings, drawingNode, control, part, ctrlPropXml, parent)
 {
 }
Exemplo n.º 23
0
 internal ExcelStandardChartWithLines(ExcelDrawings drawings, XmlNode node, eChartType?type, ExcelChart topChart, ExcelPivotTable PivotTableSource, XmlDocument chartXml, ExcelGroupShape parent = null) :
     base(drawings, node, type, topChart, PivotTableSource, chartXml, parent)
 {
 }
Exemplo n.º 24
0
 internal ExcelSunburstChart(ExcelDrawings drawings, XmlNode drawingsNode, eChartType?type, XmlDocument chartXml = null, ExcelGroupShape parent = null) :
     base(drawings, drawingsNode, type, chartXml, parent)
 {
     StyleManager.SetChartStyle(Chart.Style.ePresetChartStyle.SunburstChartStyle1);
 }
Exemplo n.º 25
0
 internal ExcelLineChart(ExcelDrawings drawings, XmlNode node, eChartType?type, ExcelChart topChart, ExcelPivotTable PivotTableSource, XmlDocument chartXml, ExcelGroupShape parent = null) :
     base(drawings, node, type, topChart, PivotTableSource, chartXml, parent)
 {
     if (type != eChartType.Line3D)
     {
         Smooth = false;
     }
 }
Exemplo n.º 26
0
 internal ExcelStockChart(ExcelDrawings drawings, XmlNode node, Uri uriChart, ZipPackagePart part, XmlDocument chartXml, XmlNode chartNode, ExcelGroupShape parent = null) :
     base(drawings, node, uriChart, part, chartXml, chartNode, parent)
 {
     if (chartNode.LocalName == "barChart")
     {
         var barChart = new ExcelBarChart(this, chartNode, parent);
         barChart.Direction = eDirection.Column;
         _plotArea          = new ExcelChartPlotArea(NameSpaceManager, ChartXml.SelectSingleNode("c:chartSpace/c:chart/c:plotArea", NameSpaceManager), barChart, "c", this);
         _chartNode         = chartNode.NextSibling;
     }
 }
Exemplo n.º 27
0
 internal ExcelControlWithText(ExcelDrawings drawings, XmlElement drawNode, string name, ExcelGroupShape parent = null) :
     base(drawings, drawNode, name, parent)
 {
 }
Exemplo n.º 28
0
        internal static ExcelChart GetChart(XmlElement chartNode, ExcelDrawings drawings, XmlNode node, Uri uriChart, Packaging.ZipPackagePart part, XmlDocument chartXml, ExcelChart topChart, ExcelGroupShape parent)
        {
            switch (chartNode.LocalName)
            {
            case "stockChart":
                if (topChart == null)
                {
                    return(new ExcelStockChart(drawings, node, uriChart, part, chartXml, chartNode, parent));
                }
                else
                {
                    if (topChart is ExcelStockChart chart)
                    {
                        return(chart);
                    }
                    else
                    {
                        return(new ExcelStockChart(topChart, chartNode, parent));
                    }
                }

            case "area3DChart":
            case "areaChart":
                if (topChart == null)
                {
                    return(new ExcelAreaChart(drawings, node, uriChart, part, chartXml, chartNode, parent));
                }
                else
                {
                    return(new ExcelAreaChart(topChart, chartNode, parent));
                }

            case "surface3DChart":
            case "surfaceChart":
                if (topChart == null)
                {
                    return(new ExcelSurfaceChart(drawings, node, uriChart, part, chartXml, chartNode, parent));
                }
                else
                {
                    return(new ExcelSurfaceChart(topChart, chartNode, parent));
                }

            case "radarChart":
                if (topChart == null)
                {
                    return(new ExcelRadarChart(drawings, node, uriChart, part, chartXml, chartNode, parent));
                }
                else
                {
                    return(new ExcelRadarChart(topChart, chartNode, parent));
                }

            case "bubbleChart":
                if (topChart == null)
                {
                    return(new ExcelBubbleChart(drawings, node, uriChart, part, chartXml, chartNode, parent));
                }
                else
                {
                    return(new ExcelBubbleChart(topChart, chartNode, parent));
                }

            case "barChart":
            case "bar3DChart":
                if (topChart == null)
                {
                    if (chartNode.LocalName == "barChart" && chartNode.NextSibling?.LocalName == "stockChart")
                    {
                        return(new ExcelStockChart(drawings, node, uriChart, part, chartXml, chartNode, parent));
                    }
                    else
                    {
                        return(new ExcelBarChart(drawings, node, uriChart, part, chartXml, chartNode, parent));
                    }
                }
                else
                {
                    return(new ExcelBarChart(topChart, chartNode, parent));
                }

            case "doughnutChart":
                if (topChart == null)
                {
                    return(new ExcelDoughnutChart(drawings, node, uriChart, part, chartXml, chartNode, parent));
                }
                else
                {
                    return(new ExcelDoughnutChart(topChart, chartNode, parent));
                }

            case "pie3DChart":
            case "pieChart":
                if (topChart == null)
                {
                    return(new ExcelPieChart(drawings, node, uriChart, part, chartXml, chartNode, parent));
                }
                else
                {
                    return(new ExcelPieChart(topChart, chartNode, parent));
                }

            case "ofPieChart":
                if (topChart == null)
                {
                    return(new ExcelOfPieChart(drawings, node, uriChart, part, chartXml, chartNode, parent));
                }
                else
                {
                    return(new ExcelOfPieChart(topChart, chartNode, parent));
                }

            case "lineChart":
            case "line3DChart":
                if (topChart == null)
                {
                    if (uriChart == null)
                    {
                        return(new ExcelLineChart(drawings, node, eChartType.Line, null, null, chartXml, parent));
                    }
                    else
                    {
                        return(new ExcelLineChart(drawings, node, uriChart, part, chartXml, chartNode, parent));
                    }
                }
                else
                {
                    return(new ExcelLineChart(topChart, chartNode, parent));
                }

            case "scatterChart":
                if (topChart == null)
                {
                    return(new ExcelScatterChart(drawings, node, uriChart, part, chartXml, chartNode, parent));
                }
                else
                {
                    return(new ExcelScatterChart(topChart, chartNode, parent));
                }

            default:
                return(null);
            }
        }
Exemplo n.º 29
0
 internal ExcelSunburstChart(ExcelDrawings drawings, XmlNode node, Uri uriChart, ZipPackagePart part, XmlDocument chartXml, XmlNode chartNode, ExcelGroupShape parent = null) :
     base(drawings, node, uriChart, part, chartXml, chartNode, parent)
 {
 }
Exemplo n.º 30
0
 internal ExcelChart(ExcelDrawings drawings, XmlNode node, ExcelGroupShape parent, string drawingPath = "xdr:graphicFrame", string nvPrPath = "xdr:nvGraphicFramePr/xdr:cNvPr") :
     base(drawings, node, drawingPath, nvPrPath, parent)
 {
 }