示例#1
0
        private static string GetArea3D(bool R1C1, TArea3dToken Token, int CellRow, int CellCol, TWorkbookGlobals Globals, bool IsErr, bool WritingXlsx)
        {
            if (Globals == null)
            {
                return(" <Ref> ");
            }

            int ExternSheet = Token.FExternSheet;

            if (ExternSheet == 0xFFFF)
            {
                return(TFormulaMessages.ErrString(TFlxFormulaErrorValue.ErrRef));
            }
            int Row1 = IsErr ? -1 : Token.GetRow1(CellRow) + 1;
            int Row2 = IsErr ? -1 : Token.GetRow2(CellRow) + 1;
            int Col1 = IsErr ? -1 : Token.GetCol1(CellCol) + 1;
            int Col2 = IsErr ? -1 : Token.GetCol2(CellCol) + 1;

            if (Col1 == 1 && Col2 == FlxConsts.Max_Columns + 1)
            {
                return(GetSheetName(ExternSheet, Globals, WritingXlsx) + GetRowRange(R1C1, Row1, Row2, CellRow, Token.RowAbs1, Token.RowAbs2));
            }
            if (Row1 == 1 && Row2 == FlxConsts.Max_Rows + 1)
            {
                return(GetSheetName(ExternSheet, Globals, WritingXlsx) + GetColRange(R1C1, Col1, Col2, CellCol, Token.ColAbs1, Token.ColAbs2));
            }

            string RestOfArea = IsErr? String.Empty: fts(TFormulaToken.fmRangeSep) + Get1Ref(R1C1, Row2, Col2, CellRow, CellCol, Token.RowAbs2, Token.ColAbs2);

            return(GetSheetName(ExternSheet, Globals, WritingXlsx) + Get1Ref(R1C1, Row1, Col1, CellRow, CellCol, Token.RowAbs1, Token.ColAbs1) + RestOfArea);
        }