internal void SaveRangeToStream(IDataStream DataStream, TSaveData SaveData, TXlsCellRange CellRange) { int FirstRecord = 0; int RecordCount = 0; CalcIncludedRangeRecords(CellRange, ref FirstRecord, ref RecordCount); if (RecordCount > MaxPageBreaks) { if (SaveData.ThrowExceptionOnTooManyPageBreaks) { XlsMessages.ThrowException(XlsErr.ErrTooManyPageBreaks); } else { RecordCount = MaxPageBreaks; } if (FlexCelTrace.Enabled) { FlexCelTrace.Write(new TXlsTooManyPageBreaksError(XlsMessages.GetString(XlsErr.ErrTooManyPageBreaks), DataStream.FileName)); } } SaveToStreamExt(DataStream, SaveData, FirstRecord, RecordCount); }
internal void InsertSheets(int CopyFrom, int InsertBefore, int SheetCount, TWorkbook SourceWorkbook) { if (SourceWorkbook == null) { SourceWorkbook = this; } if (CopyFrom >= SourceWorkbook.Sheets.Count) { XlsMessages.ThrowException(XlsErr.ErrInvalidSheetNo, CopyFrom, -1, SourceWorkbook.Sheets.Count - 1); } if (InsertBefore > Sheets.Count) { XlsMessages.ThrowException(XlsErr.ErrInvalidSheetNo, InsertBefore, 0, Sheets.Count); } TSheet aSheet = null; int OptionFlags = 0; if (CopyFrom >= 0) { aSheet = SourceWorkbook.Sheets[CopyFrom]; OptionFlags = SourceWorkbook.Globals.SheetOptionFlags(CopyFrom); } int NewCopyFrom = CopyFrom; if (SourceWorkbook == this && CopyFrom >= InsertBefore) { NewCopyFrom += SheetCount; } Globals.InsertSheets(CopyFrom, InsertBefore, OptionFlags, XlsMessages.GetString(XlsErr.BaseSheetName), SheetCount, SourceWorkbook.Sheets); TSheetInfo SheetInfo = new TSheetInfo(-1, -1, -1, SourceWorkbook.Globals, Globals, aSheet, null, false); for (int i = 0; i < SheetCount; i++) { SheetInfo.InsSheet = InsertBefore + i; SheetInfo.SourceFormulaSheet = NewCopyFrom; SheetInfo.DestFormulaSheet = InsertBefore; SheetInfo.DestSheet = null; //keep it null, since the reference does not exist yet. if (aSheet == null) { Sheets.Insert(InsertBefore, TWorkSheet.CreateFromData(Globals, Globals.Workbook.XlsBiffVersion, Globals.Workbook.ExcelFileFormat)); } else { SheetInfo.DestFormulaSheet = InsertBefore + i; Globals.Names.InsertSheets(NewCopyFrom, InsertBefore + i, 1, SheetInfo, SourceWorkbook == this); //names must be inserted before the sheet is cloned, so formulas can refer to them. Sheets.Insert(InsertBefore + i, TSheet.Clone(aSheet, SheetInfo)); SheetInfo.DestSheet = Sheets[InsertBefore + i]; Sheets[InsertBefore + i].ArrangeCopySheet(SheetInfo); } } }
internal void SaveAllToStream(IDataStream DataStream, TSaveData SaveData) { if (RealCount() > MaxPageBreaks) { if (SaveData.ThrowExceptionOnTooManyPageBreaks) { XlsMessages.ThrowException(XlsErr.ErrTooManyPageBreaks); } if (FlexCelTrace.Enabled) { FlexCelTrace.Write(new TXlsTooManyPageBreaksError(XlsMessages.GetString(XlsErr.ErrTooManyPageBreaks), DataStream.FileName)); } } SaveToStreamExt(DataStream, SaveData, 0, VirtualCount); }
/// <summary> /// Creates a new ETokenException for a specific Token. /// </summary> /// <param name="aToken"></param> public ETokenException(int aToken) : base(XlsMessages.GetString(XlsErr.ErrBadToken, aToken), XlsErr.ErrBadToken) { InitState(aToken); }
/// <summary> /// Creates an empty ETokenException. /// </summary> public ETokenException() : base(XlsMessages.GetString(XlsErr.ErrBadToken, 0), XlsErr.ErrBadToken) { InitState(0); }