internal static TXlsxPivotCache Load(TOpenXmlReader DataStream) { TXlsxPivotCache Result = new TXlsxPivotCache(); Result.FCacheId = DataStream.GetAttributeAsLong("cacheId", -1); Result.ReadPivotCache(DataStream, DataStream.GetRelationship("id")); DataStream.FinishTagAndIgnoreChildren(); return(Result); }
internal void ReadPivotTable(TOpenXmlReader DataStream, TXlsxPivotCacheList PivotCacheList) { /* Fields that need updating: * location * filter */ LoadAtts(DataStream, false); long cid = DataStream.GetAttributeAsLong("cacheId", -1); if (cid >= 0) { FCache = PivotCacheList.FindCacheFromDisk(cid); } if (DataStream.IsSimpleTag) { DataStream.NextTag(); return; } string StartElement = DataStream.RecordName(); if (!DataStream.NextTag()) { return; } while (!DataStream.AtEndElement(StartElement)) { switch (DataStream.RecordName()) { case "location": ReadLocation(DataStream); break; case "pivotFields": case "rowFields": case "rowItems": case "colFields": case "colItems": case "pageFields": case "dataFields": case "formats": case "conditionalFormats": case "chartFormats": case "pivotHierarchies": case "pivotTableStyleInfo": case "filters": case "rowHierarchiesUsage": case "colHierarchiesUsage": case "extLst": default: FRecords.Add(new TXlsxPivotTableRecord(DataStream.GetXml())); break; } } }
private void ReadCacheSource(TOpenXmlReader DataStream) { string SourceType = DataStream.GetAttribute("type"); if (SourceType == "external") { FRecords.Add(new TXlsxPivotCacheRecord(DataStream.GetXml())); return; } if (DataStream.IsSimpleTag) { DataStream.NextTag(); return; } string StartElement = DataStream.RecordName(); if (!DataStream.NextTag()) { return; } TCacheSourceRecord R = new TCacheSourceRecord(SourceType, DataStream.GetAttributeAsLong("connectionId", -1)); FRecords.Add(R); while (!DataStream.AtEndElement(StartElement)) { switch (DataStream.RecordName()) { case "consolidation": ReadConsolidation(DataStream, R); break; case "worksheetSource": ReadWorksheetSource(DataStream, R); break; case "extLst": default: TFutureStorage.Add(ref R.FutureStorage, new TFutureStorageRecord(DataStream.GetXml())); break; } } }