internal static int TotalSizeWithArray(TParsedTokenList Data, TFormulaType FmlaType) { if (Data.TextLenght > FlxConsts.Max_FormulaLen97_2003) { FlxMessages.ThrowException(FlxErr.ErrFormulaTooLong, TFormulaConvertInternalToText.AsString(Data, 0, 0, null)); } int DataLenNoArray; byte[] bData = TFormulaConvertInternalToBiff8.GetTokenData(null, Data, FmlaType, out DataLenNoArray); return(bData.Length); }
internal static void SaveToStream(TNameRecordList Names, IDataStream Workbook, TFormulaType FmlaType, TParsedTokenList Data, bool WriteLen) { if (Data.TextLenght > FlxConsts.Max_FormulaLen97_2003) { FlxMessages.ThrowException(FlxErr.ErrFormulaTooLong, TFormulaConvertInternalToText.AsString(Data, 0, 0, null)); } int FmlaNoArrayLen; byte[] bData = TFormulaConvertInternalToBiff8.GetTokenData(Names, Data, FmlaType, out FmlaNoArrayLen); if (WriteLen) { Workbook.Write16((UInt16)FmlaNoArrayLen); } Workbook.Write(bData, bData.Length); }
private static void AddArray(TBaseParsedToken Token, int CellRow, int CellCol, ICellList CellList, TWorkbookGlobals Globals, TFormulaStack ParsedStack, int MaxStringConstantLen, bool WritingXlsx) { if (CellList == null) { ParsedStack.Push(" <Ref> "); return; } string Start = ""; string Stop = ""; if (!WritingXlsx) { Start = fts(TFormulaToken.fmOpenArray); Stop = fts(TFormulaToken.fmCloseArray); } ParsedStack.Push(Start + TFormulaConvertInternalToText.AsString(CellList.ArrayFormula(((TExp_Token)Token).Row, ((TExp_Token)Token).Col), CellRow, CellCol, CellList, Globals, MaxStringConstantLen, WritingXlsx) + Stop); }