Esempio n. 1
0
        internal void ReadChart(TFlxChart Chart)
        {
            if (DataStream.IsSimpleTag)
            {
                DataStream.NextTag(); return;
            }
            string StartElement = DataStream.RecordName();

            if (!DataStream.NextTag())
            {
                return;
            }
            while (!DataStream.AtEndElement(StartElement))
            {
                switch (DataStream.RecordName())
                {
                /*   case "title": ReadTitle(Chart); break;
                 * case "autoTitleDeleted": ReadAutoTitleDeleted(Chart); break;
                 * case "pivotFmts": ReadPivotFmts(Chart); break;
                 * case "view3D": ReadView3D(Chart); break;
                 * case "floor": ReadFloor(Chart); break;
                 * case "sideWall": ReadSideWall(Chart); break;
                 * case "backWall": ReadBackWall(Chart); break;*/
                case "plotArea": ReadPlotArea(Chart); break;

                /* case "legend": ReadLegend(Chart); break;
                 * case "plotVisOnly": ReadPlotVisOnly(Chart); break;
                 * case "dispBlanksAs": ReadDispBlanksAs(Chart); break;
                 * case "showDLblsOverMax": ReadShowDLblsOverMax(Chart); break;
                 * case "extLst": ReadExtLst(Chart); break;*/
                default: DataStream.GetXml();
                    break;
                }
            }
        }
Esempio n. 2
0
        internal override void LoadIntoSheet(TSheet ws, int rRow, TBaseRecordLoader RecordLoader, ref TLoaderInfo Loader)
        {
            TFlxChart chart = ws as TFlxChart;

            if (chart != null)
            {
                chart.ClrtClient = this;
                return;
            }
            base.LoadIntoSheet(ws, rRow, RecordLoader, ref Loader);
        }
Esempio n. 3
0
        public void ReadPlotArea(TFlxChart Chart)
        {
            if (DataStream.IsSimpleTag)
            {
                DataStream.NextTag(); return;
            }
            string StartElement = DataStream.RecordName();

            if (!DataStream.NextTag())
            {
                return;
            }
            while (!DataStream.AtEndElement(StartElement))
            {
                switch (DataStream.RecordName())
                {
                /*
                 * case "layout": ReadLayout(Chart); break;
                 *
                 * //choice
                 * case "areaChart": ReadAreaChart(Chart); break;
                 * case "area3DChart": ReadArea3DChart(Chart); break;
                 * case "lineChart": ReadLineChart(Chart); break;
                 * case "line3DChart": ReadLine3DChart(Chart); break;
                 * case "stockChart": ReadStockChart(Chart); break;
                 * case "radarChart": ReadRadarChart(Chart); break;
                 * case "scatterChart": ReadScatterChart(Chart); break;
                 * case "pieChart": ReadPieChart(Chart); break;
                 * case "pie3DChart": ReadPie3DChart(Chart); break;
                 * case "doughnutChart": ReadDoughnutChart(Chart); break;
                 * case "barChart": ReadBarChart(Chart); break;
                 * case "bar3DChart": ReadBar3DChart(Chart); break;
                 * case "ofPieChart": ReadOfPieChart(Chart); break;
                 * case "surfaceChart": ReadSurfaceChart(Chart); break;
                 * case "surface3DChart": ReadSurface3DChart(Chart); break;
                 * case "bubbleChart": ReadBubbleChart(Chart); break;
                 *
                 * //end choice
                 *
                 * case "valAx": ReadValAx(Chart); break;
                 * case "catAx": ReadCatAx(Chart); break;
                 * case "dateAx": ReadDateAx(Chart); break;
                 * case "serAx": ReadSerAx(Chart); break;
                 * case "spPr": ReadSpPr(Chart); break;
                 * case "extLst": ReadExtLst(Chart); break;*/
                default: DataStream.GetXml();
                    break;
                }
            }
        }
Esempio n. 4
0
        internal void ReadChart(string relId, TFlxChart Chart)
        {
            DataStream.SelectFromCurrentPartAndPush(relId, TOpenXmlManager.ChartNamespace, false);

            while (DataStream.NextTag())
            {
                switch (DataStream.RecordName())
                {
                case "chartSpace":
                    ReadChartSpace(Chart);
                    break;

                default:     //shouldn't happen
                    DataStream.GetXml();
                    break;
                }
            }

            DataStream.PopPart();
        }
Esempio n. 5
0
        public void ReadChartSpace(TFlxChart Chart)
        {
            if (DataStream.IsSimpleTag)
            {
                DataStream.NextTag(); return;
            }
            string StartElement = DataStream.RecordName();

            if (!DataStream.NextTag())
            {
                return;
            }
            while (!DataStream.AtEndElement(StartElement))
            {
                switch (DataStream.RecordName())
                {
/*
 *                  case "date1904": ReadDate1904(Chart); break;
 *                  case "lang": ReadLang(Chart); break;
 *                  case "roundedCorners": ReadRoundedCorners(Chart); break;
 *                  case "style": ReadStyle(Chart); break;
 *                  case "clrMapOvr": ReadClrMapOvr(Chart); break;
 *                  case "pivotSource": ReadPivotSource(Chart); break;
 *                  case "protection": ReadProtection(Chart); break;*/
                case "chart": ReadChart(Chart); break;

                /* case "spPr": ReadSpPr(Chart); break;
                 * case "txPr": ReadTxPr(Chart); break;
                 * case "externalData": ReadExternalData(Chart); break;
                 * case "printSettings": ReadPrintSettings(Chart); break;
                 * case "userShapes": ReadUserShapes(Chart); break;
                 * case "extLst": ReadExtLst(Chart); break;*/
                default: DataStream.GetXml();
                    break;
                }
            }
        }
Esempio n. 6
0
        /// <summary>
        /// You cannot create instances of this class. It must be returned with a call to <see cref="XlsFile.GetChart(int, string)"/>
        /// </summary>
        internal XlsChart(XlsFile aWorkbook, TFlxChart aCurrentChart) : base()
        {
            Workbook     = aWorkbook;
            CurrentChart = aCurrentChart;
            CurrentSheet = aWorkbook.InternalWorkbook.Sheets[aWorkbook.ActiveSheet - 1];
            if (aWorkbook.InternalWorkbook.IsWorkSheet(aWorkbook.ActiveSheet - 1))
            {
                CellList = aWorkbook.InternalWorkbook.WorkSheets(aWorkbook.ActiveSheet - 1).Cells.CellList;
            }
            else
            {
                CellList = new TCellList(aWorkbook.InternalWorkbook.Globals, null, null);                 //for chart sheets.
            }

            FHorizontalFontScaling = 1;
            FVerticalFontScaling   = 1;
            FPlotEmptyCells        = TPlotEmptyCells.NotPlotted;
            if (CurrentChart != null && CurrentChart.Chart.GetChartCache != null)
            {
                List <TDataLabel> ArrDataLabels = new List <TDataLabel>();
                TChartRecordList  Children      = CurrentChart.Chart.GetChartCache.Children;
                for (int i = 0; i < Children.Count; i++)
                {
                    TxChartBaseRecord R = Children[i] as TxChartBaseRecord;
                    if (R != null)
                    {
                        switch ((xlr)R.Id)
                        {
                        case xlr.ChartPlotgrowth:
                            TChartPlotGrowthRecord PlotGrowth = R as TChartPlotGrowthRecord;
                            FHorizontalFontScaling = PlotGrowth.XScaling / 65536.0;
                            FVerticalFontScaling   = PlotGrowth.YScaling / 65536.0;
                            break;

                        case xlr.ChartFrame:
                            TChartFrameRecord BackgroundFrame = R as TChartFrameRecord;
                            if (BackgroundFrame != null)
                            {
                                FBackground = BackgroundFrame.GetFrameOptions();
                            }
                            break;

                        case xlr.ChartDefaulttext:
                            TChartDefaultTextRecord DT = R as TChartDefaultTextRecord;
                            switch (DT.AppliesTo)
                            {
                            case 2:          //default text for all text in the chart.
                            {
                                if (i + 1 < Children.Count)
                                {
                                    TChartTextRecord TR = Children[i + 1] as TChartTextRecord;
                                    if (TR != null)
                                    {
                                        TChartFontXRecord FontX = (TChartFontXRecord)TR.FindRec <TChartFontXRecord>();
                                        if (FontX != null)
                                        {
                                            FDefaultFont = FontX.GetFont(Workbook.InternalWorkbook.Globals, Math.Min(FVerticalFontScaling, FHorizontalFontScaling));
                                        }
                                    }
                                }
                                break;
                            }

                            case 0:
                            {
                                if (i + 1 < Children.Count)
                                {
                                    TChartTextRecord TR = Children[i + 1] as TChartTextRecord;
                                    if (TR != null)
                                    {
                                        TChartFontXRecord FontX = (TChartFontXRecord)TR.FindRec <TChartFontXRecord>();
                                        if (FontX != null)
                                        {
                                            FDefaultLabelFont = FontX.GetFont(Workbook.InternalWorkbook.Globals, Math.Min(FVerticalFontScaling, FHorizontalFontScaling));
                                        }
                                    }
                                }
                                break;
                            }

                            case 3:         //Not documented, but it is the default font for axis.
                            {
                                if (i + 1 < Children.Count)
                                {
                                    TChartTextRecord TR = Children[i + 1] as TChartTextRecord;
                                    if (TR != null)
                                    {
                                        TChartFontXRecord FontX = (TChartFontXRecord)TR.FindRec <TChartFontXRecord>();
                                        if (FontX != null)
                                        {
                                            FDefaultAxisFont = FontX.GetFont(Workbook.InternalWorkbook.Globals, Math.Min(FVerticalFontScaling, FHorizontalFontScaling));
                                        }
                                    }
                                }
                                break;
                            }
                            }
                            break;

                        case xlr.ChartText:
                        {
                            if (i - 1 < 0 || !(Children[i - 1] is TChartDefaultTextRecord))
                            {
                                TChartTextRecord TR = R as TChartTextRecord;
                                int SheetIndex      = Workbook.InternalWorkbook.Sheets.IndexOf(CurrentSheet) + 1;
                                if (SheetIndex >= 1)
                                {
                                    ArrDataLabels.Add(TR.GetDataLabel(Workbook, CellList, SheetIndex, true, true, Math.Min(FVerticalFontScaling, FHorizontalFontScaling)));
                                }
                            }
                            break;
                        }

                        case xlr.ChartShtprops:
                            TChartShtPropsRecord SP = R as TChartShtPropsRecord;
                            FPlotEmptyCells = (TPlotEmptyCells)SP.PlotEmptyCells;
                            break;
                        }
                    }
                }

                FDataLabels = ArrDataLabels.ToArray();
            }

            if (FDefaultFont == null)             //FDefaultFont = Workbook.GetFont(15); //Excel does not use this one.
            {
                FDefaultFont             = new TFlxChartFont();
                FDefaultFont.Font.Size20 = 200;
                FDefaultFont.Font.Name   = "Arial";
                FDefaultFont.Font.Style  = TFlxFontStyles.None;
                FDefaultFont.Scale       = 1;
            }

            if (FDefaultLabelFont == null)
            {
                FDefaultLabelFont = FDefaultFont;
            }

            if (FDefaultAxisFont == null)
            {
                FDefaultAxisFont       = new TFlxChartFont();
                FDefaultAxisFont.Font  = Workbook.GetFormat(FlxConsts.DefaultFormatId).Font;                 //We do not fall out to FDefaultFont, but rather to the default font in the workbook.
                FDefaultAxisFont.Scale = 1;
            }
        }