示例#1
0
        protected override void AddParsedExternName(string ExternSheet, string ExternName)
        {
            bool IsLocal;
            int  Sheet;
            int  extsheet = Xls.GetExternSheet(ExternSheet, false, ReadingXlsx, out IsLocal, out Sheet);
            int  extname  = -1;

            if (IsLocal)
            {
                extname = GetNamedRangeIndex(ExternName, Sheet + 1, true);
                if (ReadingXlsx && extname < 0)
                {
                    extname = Xls.AddEmptyName(ExternName, Sheet + 1);
                }
            }
            else
            {
                extname = Xls.EnsureExternName(extsheet, ExternName);
            }

            if (extname < 0)
            {
                FlxMessages.ThrowException(FlxErr.ErrInvalidRef, ExternSheet + fts(TFormulaToken.fmExternalRef) + ExternName);
            }

            AddParsedExternName(extsheet, extname);
        }
示例#2
0
 protected override void AddParsed3dRef(string ExternSheet, int Row, int Col, bool RowAbs, bool ColAbs)
 {
     if (RelativeAddress)
     {
         Push(new TRef3dNToken(GetRealPtg(ptg.Ref3d, TFmReturnType.Ref), Xls.GetExternSheet(ExternSheet, ReadingXlsx), Row - RelStartRow(RowAbs), Col - RelStartCol(ColAbs), RowAbs, ColAbs, false));
     }
     else
     {
         Push(new TRef3dToken(GetRealPtg(ptg.Ref3d, TFmReturnType.Ref), Xls.GetExternSheet(ExternSheet, ReadingXlsx), Row, Col, RowAbs, ColAbs));
     }
 }
示例#3
0
 protected override void AddParsed3dArea(string ExternSheet, int Row1, int Row2, int Col1, int Col2, bool RowAbs1, bool RowAbs2, bool ColAbs1, bool ColAbs2)
 {
     if (RelativeAddress)
     {
         //Really we should get an offset here, but as there is no active cell, we will assume the cell where the cursor is on is A1. So Row and Col are the offsets.
         Push(new TArea3dNToken(GetRealPtg(ptg.Area3d, TFmReturnType.Ref), Xls.GetExternSheet(ExternSheet, ReadingXlsx), Row1 - RelStartRow(RowAbs1), Col1 - RelStartCol(ColAbs1), RowAbs1, ColAbs1, Row2 - RelStartRow(RowAbs1), Col2 - RelStartCol(ColAbs2), RowAbs2, ColAbs2, false));
     }
     else
     {
         Push(new TArea3dToken(GetRealPtg(ptg.Area3d, TFmReturnType.Ref), Xls.GetExternSheet(ExternSheet, ReadingXlsx), Row1, Col1, RowAbs1, ColAbs1, Row2, Col2, RowAbs2, ColAbs2));
     }
 }
示例#4
0
 protected override void AddParsed3dRefErr(string ExternSheet)
 {
     Push(new TRef3dToken(GetRealPtg(ptg.Ref3dErr, TFmReturnType.Ref), Xls.GetExternSheet(ExternSheet, ReadingXlsx), 0, 0, false, false));
 }