Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }