private void SaveToStream(IDataStream DataStream, TSaveData SaveData, int SheetIndex) { if ((sBOF == null) || (sEOF == null)) { XlsMessages.ThrowException(XlsErr.ErrSectionNotLoaded); } sBOF.SaveToStream(DataStream, SaveData, 0); FileEncryption.SaveFirstPart(DataStream, SaveData); //WriteProt if (DataStream.Encryption.Engine != null) //FilePass { byte[] Fp = DataStream.Encryption.Engine.GetFilePassRecord(); DataStream.WriteRaw(Fp, Fp.Length); } if (IsXltTemplate) { TTemplateRecord.SaveNewRecord(DataStream); } FileEncryption.SaveSecondPart(DataStream, SaveData); TGlobalRecordSaver g = new TGlobalRecordSaver(DataStream, SaveData); g.SaveRecord(CodePage); FLel.SaveToStream(DataStream, SaveData, 0); TDSFRecord.SaveDSF(DataStream); g.SaveRecord(Excel9File); if (SheetIndex < 0) { FBoundSheets.SaveTabIds(DataStream); } g.SaveRecord(GetMacroRec(ObjProj)); g.SaveRecord(GetMacroRec(ObNoMacros)); g.SaveRecord(CodeNameRecord); FFnGroups.SaveToStream(DataStream, SaveData, 0); g.SaveRecord(OleObjectSize); FWorkbookProtection.SaveToStream(DataStream, SaveData); foreach (TWindow1Record w1 in Window1) { g.SaveRecord(w1); } TBackupRecord.SaveRecord(DataStream, Backup); THideObjRecord.SaveRecord(DataStream, HideObj); T1904Record.SaveRecord(DataStream, Dates1904); TPrecisionRecord.SaveRecord(DataStream, PrecisionAsDisplayed); TRefreshAllRecord.SaveRecord(DataStream, RefreshAll); g.SaveRecord(BookBool); Fonts.SaveToStream(DataStream, SaveData, 0); Formats.SaveToStream(DataStream, SaveData, 0); StyleXF.SaveAllToStream(DataStream, ref SaveData, CellXF); DXF.SaveToStream(DataStream, SaveData, 0); Styles.SaveToStream(DataStream, SaveData, 0); TableStyles.SaveToStream(DataStream, SaveData, 0); g.SaveRecord(Palette); g.SaveRecord(ClrtClient); PivotCache.SaveToStream(DataStream, SaveData, 0); DocRoute.SaveToStream(DataStream, SaveData, 0); UserBView.SaveToStream(DataStream, SaveData, 0); TUsesELFsRecord.SaveRecord(DataStream, UsesELFs); if (SheetIndex < 0) { FBoundSheets.SaveToStream(DataStream, SaveData); MetaData.SaveToStream(DataStream, SaveData, 0); } else { FBoundSheets.SaveRangeToStream(DataStream, SaveData, SheetIndex); } g.SaveRecord(MTRSettings); g.SaveRecord(ForceFullCalculation); g.SaveRecord(Country); FReferences.SaveToStream(DataStream, SaveData); FNames.SaveToStream(DataStream, SaveData, 0); //Should be after FBoundSheets.SaveToStream RealTimeData.SaveToStream(DataStream, SaveData, 0); g.SaveRecord(RecalcId); if (SheetIndex < 0) { FHeaderImages.SaveToStream(DataStream, SaveData); FDrawingGroup.SaveToStream(DataStream, SaveData); } FSST.SaveToStream(DataStream, SaveData); WebPub.SaveToStream(DataStream, SaveData, 0); g.SaveRecord(WOpt); //CrErr is ignored g.SaveRecord(BookExt); FeatHdr.SaveToStream(DataStream, SaveData, 0); DConn.SaveToStream(DataStream, SaveData, 0); ThemeRecord.SaveToStream(DataStream, SaveData, 0); g.SaveRecord(CompressPictures); g.SaveRecord(Compat12); g.SaveRecord(GUIDTypeLib); FFutureRecords.SaveToStream(DataStream, SaveData, 0); sEOF.SaveToStream(DataStream, SaveData, 0); }
public ChartSheetContentSequence(IStreamReader reader) : base(reader) { // reset id counter for chart groups ChartFormatIdGenerator.Instance.StartNewChartsheetSubstream(); ChartAxisIdGenerator.Instance.StartNewChartsheetSubstream(); // CHARTSHEETCONTENT = [WriteProtect] [SheetExt] [WebPub] *HFPicture PAGESETUP PrintSize [HeaderFooter] [BACKGROUND] *Fbi *Fbi2 [ClrtClient] [PROTECTION] // [Palette] [SXViewLink] [PivotChartBits] [SBaseRef] [MsoDrawingGroup] OBJECTS Units CHARTFOMATS SERIESDATA *WINDOW *CUSTOMVIEW [CodeName] [CRTMLFRT] EOF // [WriteProtect] if (BiffRecord.GetNextRecordType(reader) == RecordType.WriteProtect) { this.WriteProtect = (WriteProtect)BiffRecord.ReadRecord(reader); } // [SheetExt] if (BiffRecord.GetNextRecordType(reader) == RecordType.SheetExt) { this.SheetExt = (SheetExt)BiffRecord.ReadRecord(reader); } // [WebPub] if (BiffRecord.GetNextRecordType(reader) == RecordType.WebPub) { this.WebPub = (WebPub)BiffRecord.ReadRecord(reader); } // *HFPicture while (BiffRecord.GetNextRecordType(reader) == RecordType.HFPicture) { this.HFPictures.Add((HFPicture)BiffRecord.ReadRecord(reader)); } // PAGESETUP this.PageSetupSequence = new PageSetupSequence(reader); // PrintSize if (BiffRecord.GetNextRecordType(reader) == RecordType.PrintSize) { this.PrintSize = (PrintSize)BiffRecord.ReadRecord(reader); } // [HeaderFooter] if (BiffRecord.GetNextRecordType(reader) == RecordType.HeaderFooter) { this.HeaderFooter = (HeaderFooter)BiffRecord.ReadRecord(reader); } // [BACKGROUND] if (BiffRecord.GetNextRecordType(reader) == RecordType.BkHim) { this.BackgroundSequence = new BackgroundSequence(reader); } // *Fbi this.Fbis = new List <Fbi>(); while (BiffRecord.GetNextRecordType(reader) == RecordType.Fbi) { this.Fbis.Add((Fbi)BiffRecord.ReadRecord(reader)); } // *Fbi2 this.Fbi2s = new List <Fbi2>(); while (BiffRecord.GetNextRecordType(reader) == RecordType.Fbi2) { this.Fbi2s.Add((Fbi2)BiffRecord.ReadRecord(reader)); } // [ClrtClient] if (BiffRecord.GetNextRecordType(reader) == RecordType.ClrtClient) { this.ClrtClient = (ClrtClient)BiffRecord.ReadRecord(reader); } // [PROTECTION] this.ProtectionSequence = new ProtectionSequence(reader); // [Palette] if (BiffRecord.GetNextRecordType(reader) == RecordType.Palette) { this.Palette = (Palette)BiffRecord.ReadRecord(reader); } // [SXViewLink] if (BiffRecord.GetNextRecordType(reader) == RecordType.SXViewLink) { this.SXViewLink = (SXViewLink)BiffRecord.ReadRecord(reader); } // [PivotChartBits] if (BiffRecord.GetNextRecordType(reader) == RecordType.PivotChartBits) { this.PivotChartBits = (PivotChartBits)BiffRecord.ReadRecord(reader); } // [SBaseRef] if (BiffRecord.GetNextRecordType(reader) == RecordType.SBaseRef) { this.SBaseRef = (SBaseRef)BiffRecord.ReadRecord(reader); } // [MsoDrawingGroup] if (BiffRecord.GetNextRecordType(reader) == RecordType.MsoDrawingGroup) { this.MsoDrawingGroup = (MsoDrawingGroup)BiffRecord.ReadRecord(reader); } // OBJECTS this.ObjectsSequence = new ObjectsSequence(reader); // Units this.Units = (Units)BiffRecord.ReadRecord(reader); // CHARTFOMATS this.ChartFormatsSequence = new ChartFormatsSequence(reader); // SERIESDATA this.SeriesDataSequence = new SeriesDataSequence(reader); // *WINDOW this.WindowSequences = new List <WindowSequence>(); while (BiffRecord.GetNextRecordType(reader) == RecordType.Window2) { this.WindowSequences.Add(new WindowSequence(reader)); } // *CUSTOMVIEW this.CustomViewSequences = new List <CustomViewSequence>(); // CUSTOMVIEW seems to be totally optional, // so check for the existence of the next sequences while (BiffRecord.GetNextRecordType(reader) != RecordType.CodeName && BiffRecord.GetNextRecordType(reader) != RecordType.CrtMlFrt && BiffRecord.GetNextRecordType(reader) != RecordType.EOF) { this.CustomViewSequences.Add(new CustomViewSequence(reader)); } //this.CustomViewSequences = new List<CustomViewSequence>(); //while (BiffRecord.GetNextRecordType(reader) == RecordType.UserSViewBegin) //{ // this.CustomViewSequences.Add(new CustomViewSequence(reader)); //} // [CodeName] if (BiffRecord.GetNextRecordType(reader) == RecordType.CodeName) { this.CodeName = (CodeName)BiffRecord.ReadRecord(reader); } // [CRTMLFRT] if (BiffRecord.GetNextRecordType(reader) == RecordType.CrtMlFrt) { this.CrtMlfrtSequence = new CrtMlfrtSequence(reader); } // EOF this.EOF = (EOF)BiffRecord.ReadRecord(reader); }