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; } } }
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); }
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; } } }
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(); }
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; } } }
/// <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; } }