521a56d8d1
Add new LET function to Calc which assigns names to calculation results. TODO: oasis proposal Change-Id: Ia0d56a30751a44a72e364a28b64fd8f617e997dc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168349 Tested-by: Gabor Kelemen <gabor.kelemen.extern@allotropia.de> Tested-by: Jenkins Reviewed-by: Balazs Varga <balazs.varga.extern@allotropia.de>
1015 lines
43 KiB
C++
1015 lines
43 KiB
C++
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
|
/*
|
|
* This file is part of the LibreOffice project.
|
|
*
|
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
*
|
|
* This file incorporates work covered by the following license notice:
|
|
*
|
|
* Licensed to the Apache Software Foundation (ASF) under one or more
|
|
* contributor license agreements. See the NOTICE file distributed
|
|
* with this work for additional information regarding copyright
|
|
* ownership. The ASF licenses this file to you under the Apache
|
|
* License, Version 2.0 (the "License"); you may not use this file
|
|
* except in compliance with the License. You may obtain a copy of
|
|
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
|
|
*/
|
|
|
|
#ifndef INCLUDED_FORMULA_OPCODE_HXX
|
|
#define INCLUDED_FORMULA_OPCODE_HXX
|
|
|
|
#include <sstream>
|
|
|
|
#include <formula/compiler.hxx>
|
|
#include <sal/types.h>
|
|
|
|
enum OpCode : sal_uInt16
|
|
{
|
|
// Special commands
|
|
ocPush = SC_OPCODE_PUSH,
|
|
ocCall = SC_OPCODE_CALL,
|
|
ocStop = SC_OPCODE_STOP,
|
|
ocExternal = SC_OPCODE_EXTERNAL,
|
|
ocName = SC_OPCODE_NAME,
|
|
// Jump commands
|
|
ocIf = SC_OPCODE_IF,
|
|
ocIfError = SC_OPCODE_IF_ERROR,
|
|
ocIfNA = SC_OPCODE_IF_NA,
|
|
ocChoose = SC_OPCODE_CHOOSE,
|
|
ocLet = SC_OPCODE_LET,
|
|
// Parentheses and separators
|
|
ocOpen = SC_OPCODE_OPEN,
|
|
ocClose = SC_OPCODE_CLOSE,
|
|
ocTableRefOpen = SC_OPCODE_TABLE_REF_OPEN,
|
|
ocTableRefClose = SC_OPCODE_TABLE_REF_CLOSE,
|
|
ocSep = SC_OPCODE_SEP,
|
|
ocArrayOpen = SC_OPCODE_ARRAY_OPEN,
|
|
ocArrayClose = SC_OPCODE_ARRAY_CLOSE,
|
|
ocArrayRowSep = SC_OPCODE_ARRAY_ROW_SEP,
|
|
ocArrayColSep = SC_OPCODE_ARRAY_COL_SEP,
|
|
// Special OpCodes
|
|
ocMissing = SC_OPCODE_MISSING,
|
|
ocBad = SC_OPCODE_BAD,
|
|
ocStringXML = SC_OPCODE_STRINGXML,
|
|
ocSpaces = SC_OPCODE_SPACES,
|
|
ocWhitespace = SC_OPCODE_WHITESPACE,
|
|
ocMatRef = SC_OPCODE_MAT_REF,
|
|
ocTableRefItemAll = SC_OPCODE_TABLE_REF_ITEM_ALL,
|
|
ocTableRefItemHeaders = SC_OPCODE_TABLE_REF_ITEM_HEADERS,
|
|
ocTableRefItemData = SC_OPCODE_TABLE_REF_ITEM_DATA,
|
|
ocTableRefItemTotals = SC_OPCODE_TABLE_REF_ITEM_TOTALS,
|
|
ocTableRefItemThisRow = SC_OPCODE_TABLE_REF_ITEM_THIS_ROW,
|
|
ocSkip = SC_OPCODE_SKIP,
|
|
ocStringName = SC_OPCODE_STRINGNAME,
|
|
// Access commands
|
|
ocDBArea = SC_OPCODE_DB_AREA,
|
|
ocTableRef = SC_OPCODE_TABLE_REF,
|
|
ocMacro = SC_OPCODE_MACRO,
|
|
ocColRowName = SC_OPCODE_COL_ROW_NAME,
|
|
ocColRowNameAuto = SC_OPCODE_COL_ROW_NAME_AUTO,
|
|
// Percent operator _follows_ value
|
|
ocPercentSign = SC_OPCODE_PERCENT_SIGN,
|
|
// Error constants
|
|
ocErrNull = SC_OPCODE_ERROR_NULL,
|
|
ocErrDivZero = SC_OPCODE_ERROR_DIVZERO,
|
|
ocErrValue = SC_OPCODE_ERROR_VALUE,
|
|
ocErrRef = SC_OPCODE_ERROR_REF,
|
|
ocErrName = SC_OPCODE_ERROR_NAME,
|
|
ocErrNum = SC_OPCODE_ERROR_NUM,
|
|
ocErrNA = SC_OPCODE_ERROR_NA,
|
|
// Binary operators
|
|
ocAdd = SC_OPCODE_ADD,
|
|
ocSub = SC_OPCODE_SUB,
|
|
ocMul = SC_OPCODE_MUL,
|
|
ocDiv = SC_OPCODE_DIV,
|
|
ocAmpersand = SC_OPCODE_AMPERSAND,
|
|
ocPow = SC_OPCODE_POW,
|
|
ocEqual = SC_OPCODE_EQUAL,
|
|
ocNotEqual = SC_OPCODE_NOT_EQUAL,
|
|
ocLess = SC_OPCODE_LESS,
|
|
ocGreater = SC_OPCODE_GREATER,
|
|
ocLessEqual = SC_OPCODE_LESS_EQUAL,
|
|
ocGreaterEqual = SC_OPCODE_GREATER_EQUAL,
|
|
ocAnd = SC_OPCODE_AND,
|
|
ocOr = SC_OPCODE_OR,
|
|
ocXor = SC_OPCODE_XOR,
|
|
ocIntersect = SC_OPCODE_INTERSECT,
|
|
ocUnion = SC_OPCODE_UNION,
|
|
ocRange = SC_OPCODE_RANGE,
|
|
// Unary operators
|
|
ocNegSub = SC_OPCODE_NEG_SUB,
|
|
// Functions with no parameters
|
|
ocPi = SC_OPCODE_PI,
|
|
ocRandom = SC_OPCODE_RANDOM,
|
|
ocTrue = SC_OPCODE_TRUE,
|
|
ocFalse = SC_OPCODE_FALSE,
|
|
ocGetActDate = SC_OPCODE_GET_ACT_DATE,
|
|
ocGetActTime = SC_OPCODE_GET_ACT_TIME,
|
|
ocNotAvail = SC_OPCODE_NO_VALUE,
|
|
ocCurrent = SC_OPCODE_CURRENT,
|
|
ocRandomNV = SC_OPCODE_RANDOM_NV,
|
|
// Functions with one parameter
|
|
ocNot = SC_OPCODE_NOT,
|
|
ocNeg = SC_OPCODE_NEG,
|
|
ocDeg = SC_OPCODE_DEG,
|
|
ocRad = SC_OPCODE_RAD,
|
|
ocSin = SC_OPCODE_SIN,
|
|
ocCos = SC_OPCODE_COS,
|
|
ocTan = SC_OPCODE_TAN,
|
|
ocCot = SC_OPCODE_COT,
|
|
ocArcSin = SC_OPCODE_ARC_SIN,
|
|
ocArcCos = SC_OPCODE_ARC_COS,
|
|
ocArcTan = SC_OPCODE_ARC_TAN,
|
|
ocArcCot = SC_OPCODE_ARC_COT,
|
|
ocSinHyp = SC_OPCODE_SIN_HYP,
|
|
ocCosHyp = SC_OPCODE_COS_HYP,
|
|
ocTanHyp = SC_OPCODE_TAN_HYP,
|
|
ocCotHyp = SC_OPCODE_COT_HYP,
|
|
ocArcSinHyp = SC_OPCODE_ARC_SIN_HYP,
|
|
ocArcCosHyp = SC_OPCODE_ARC_COS_HYP,
|
|
ocArcTanHyp = SC_OPCODE_ARC_TAN_HYP,
|
|
ocArcCotHyp = SC_OPCODE_ARC_COT_HYP,
|
|
ocCosecant = SC_OPCODE_COSECANT,
|
|
ocSecant = SC_OPCODE_SECANT,
|
|
ocCosecantHyp = SC_OPCODE_COSECANT_HYP,
|
|
ocSecantHyp = SC_OPCODE_SECANT_HYP,
|
|
ocExp = SC_OPCODE_EXP,
|
|
ocLn = SC_OPCODE_LN,
|
|
ocSqrt = SC_OPCODE_SQRT,
|
|
ocFact = SC_OPCODE_FACT,
|
|
ocGetYear = SC_OPCODE_GET_YEAR,
|
|
ocGetMonth = SC_OPCODE_GET_MONTH,
|
|
ocGetDay = SC_OPCODE_GET_DAY,
|
|
ocGetHour = SC_OPCODE_GET_HOUR,
|
|
ocGetMin = SC_OPCODE_GET_MIN,
|
|
ocGetSec = SC_OPCODE_GET_SEC,
|
|
ocPlusMinus = SC_OPCODE_PLUS_MINUS,
|
|
ocAbs = SC_OPCODE_ABS,
|
|
ocInt = SC_OPCODE_INT,
|
|
ocPhi = SC_OPCODE_PHI,
|
|
ocGauss = SC_OPCODE_GAUSS,
|
|
ocIsEmpty = SC_OPCODE_IS_EMPTY,
|
|
ocIsString = SC_OPCODE_IS_STRING,
|
|
ocIsNonString = SC_OPCODE_IS_NON_STRING,
|
|
ocIsLogical = SC_OPCODE_IS_LOGICAL,
|
|
ocType = SC_OPCODE_TYPE,
|
|
ocCell = SC_OPCODE_CELL,
|
|
ocIsRef = SC_OPCODE_IS_REF,
|
|
ocIsValue = SC_OPCODE_IS_VALUE,
|
|
ocIsFormula = SC_OPCODE_IS_FORMULA,
|
|
ocIsNA = SC_OPCODE_IS_NV,
|
|
ocIsErr = SC_OPCODE_IS_ERR,
|
|
ocIsError = SC_OPCODE_IS_ERROR,
|
|
ocIsEven = SC_OPCODE_IS_EVEN,
|
|
ocIsOdd = SC_OPCODE_IS_ODD,
|
|
ocN = SC_OPCODE_N,
|
|
// String functions
|
|
ocGetDateValue = SC_OPCODE_GET_DATE_VALUE,
|
|
ocGetTimeValue = SC_OPCODE_GET_TIME_VALUE,
|
|
ocCode = SC_OPCODE_CODE,
|
|
ocTrim = SC_OPCODE_TRIM,
|
|
ocUpper = SC_OPCODE_UPPER,
|
|
ocProper = SC_OPCODE_PROPER,
|
|
ocLower = SC_OPCODE_LOWER,
|
|
ocLen = SC_OPCODE_LEN,
|
|
ocT = SC_OPCODE_T,
|
|
ocValue = SC_OPCODE_VALUE,
|
|
ocClean = SC_OPCODE_CLEAN,
|
|
ocChar = SC_OPCODE_CHAR,
|
|
ocLog10 = SC_OPCODE_LOG10,
|
|
ocEven = SC_OPCODE_EVEN,
|
|
ocOdd = SC_OPCODE_ODD,
|
|
ocStdNormDist = SC_OPCODE_STD_NORM_DIST,
|
|
ocStdNormDist_MS = SC_OPCODE_STD_NORM_DIST_MS,
|
|
ocFisher = SC_OPCODE_FISHER,
|
|
ocFisherInv = SC_OPCODE_FISHER_INV,
|
|
ocSNormInv = SC_OPCODE_S_NORM_INV,
|
|
ocSNormInv_MS = SC_OPCODE_S_NORM_INV_MS,
|
|
ocGammaLn = SC_OPCODE_GAMMA_LN,
|
|
ocGammaLn_MS = SC_OPCODE_GAMMA_LN_MS,
|
|
ocGamma = SC_OPCODE_GAMMA,
|
|
ocErrorType = SC_OPCODE_ERROR_TYPE,
|
|
ocErrorType_ODF = SC_OPCODE_ERROR_TYPE_ODF,
|
|
ocFormula = SC_OPCODE_FORMULA,
|
|
ocArabic = SC_OPCODE_ARABIC,
|
|
ocInfo = SC_OPCODE_INFO,
|
|
ocBahtText = SC_OPCODE_BAHTTEXT,
|
|
ocJis = SC_OPCODE_JIS,
|
|
ocAsc = SC_OPCODE_ASC,
|
|
ocUnicode = SC_OPCODE_UNICODE,
|
|
ocUnichar = SC_OPCODE_UNICHAR,
|
|
// Functions with more than one parameters
|
|
ocArcTan2 = SC_OPCODE_ARC_TAN_2,
|
|
ocCeil = SC_OPCODE_CEIL,
|
|
ocCeil_MS = SC_OPCODE_CEIL_MS,
|
|
ocCeil_Precise = SC_OPCODE_CEIL_PRECISE,
|
|
ocCeil_ISO = SC_OPCODE_CEIL_ISO,
|
|
ocCeil_Math = SC_OPCODE_CEIL_MATH,
|
|
ocFloor = SC_OPCODE_FLOOR,
|
|
ocFloor_MS = SC_OPCODE_FLOOR_MS,
|
|
ocFloor_Math = SC_OPCODE_FLOOR_MATH,
|
|
ocFloor_Precise = SC_OPCODE_FLOOR_PRECISE,
|
|
ocRound = SC_OPCODE_ROUND,
|
|
ocRoundUp = SC_OPCODE_ROUND_UP,
|
|
ocRoundDown = SC_OPCODE_ROUND_DOWN,
|
|
ocTrunc = SC_OPCODE_TRUNC,
|
|
ocLog = SC_OPCODE_LOG,
|
|
ocPower = SC_OPCODE_POWER,
|
|
ocGCD = SC_OPCODE_GCD,
|
|
ocLCM = SC_OPCODE_LCM,
|
|
ocMod = SC_OPCODE_MOD,
|
|
ocSumProduct = SC_OPCODE_SUM_PRODUCT,
|
|
ocSumSQ = SC_OPCODE_SUM_SQ,
|
|
ocSumX2MY2 = SC_OPCODE_SUM_X2MY2,
|
|
ocSumX2DY2 = SC_OPCODE_SUM_X2DY2,
|
|
ocSumXMY2 = SC_OPCODE_SUM_XMY2,
|
|
ocGetDate = SC_OPCODE_GET_DATE,
|
|
ocGetTime = SC_OPCODE_GET_TIME,
|
|
ocGetDiffDate = SC_OPCODE_GET_DIFF_DATE,
|
|
ocGetDiffDate360 = SC_OPCODE_GET_DIFF_DATE_360,
|
|
ocGetDateDif = SC_OPCODE_GET_DATEDIF,
|
|
ocMin = SC_OPCODE_MIN,
|
|
ocMax = SC_OPCODE_MAX,
|
|
ocSum = SC_OPCODE_SUM,
|
|
ocProduct = SC_OPCODE_PRODUCT,
|
|
ocAverage = SC_OPCODE_AVERAGE,
|
|
ocCount = SC_OPCODE_COUNT,
|
|
ocCount2 = SC_OPCODE_COUNT_2,
|
|
ocNPV = SC_OPCODE_NPV,
|
|
ocIRR = SC_OPCODE_IRR,
|
|
ocMIRR = SC_OPCODE_MIRR,
|
|
ocISPMT = SC_OPCODE_ISPMT,
|
|
ocVar = SC_OPCODE_VAR,
|
|
ocVarP = SC_OPCODE_VAR_P,
|
|
ocVarP_MS = SC_OPCODE_VAR_P_MS,
|
|
ocVarS = SC_OPCODE_VAR_S,
|
|
ocStDev = SC_OPCODE_ST_DEV,
|
|
ocStDevP = SC_OPCODE_ST_DEV_P,
|
|
ocStDevP_MS = SC_OPCODE_ST_DEV_P_MS,
|
|
ocStDevS = SC_OPCODE_ST_DEV_S,
|
|
ocB = SC_OPCODE_B,
|
|
ocNormDist = SC_OPCODE_NORM_DIST,
|
|
ocNormDist_MS = SC_OPCODE_NORM_DIST_MS,
|
|
ocExpDist = SC_OPCODE_EXP_DIST,
|
|
ocExpDist_MS = SC_OPCODE_EXP_DIST_MS,
|
|
ocBinomDist = SC_OPCODE_BINOM_DIST,
|
|
ocBinomDist_MS = SC_OPCODE_BINOM_DIST_MS,
|
|
ocBinomInv = SC_OPCODE_BINOM_INV,
|
|
ocPoissonDist = SC_OPCODE_POISSON_DIST,
|
|
ocPoissonDist_MS = SC_OPCODE_POISSON_DIST_MS,
|
|
ocCombin = SC_OPCODE_COMBIN,
|
|
ocCombinA = SC_OPCODE_COMBIN_A,
|
|
ocPermut = SC_OPCODE_PERMUT,
|
|
ocPermutationA = SC_OPCODE_PERMUTATION_A,
|
|
ocPV = SC_OPCODE_PV,
|
|
ocSYD = SC_OPCODE_SYD,
|
|
ocDDB = SC_OPCODE_DDB,
|
|
ocDB = SC_OPCODE_DB,
|
|
ocVBD = SC_OPCODE_VBD,
|
|
ocPDuration = SC_OPCODE_PDURATION,
|
|
ocSLN = SC_OPCODE_SLN,
|
|
ocPMT = SC_OPCODE_PMT,
|
|
ocColumns = SC_OPCODE_COLUMNS,
|
|
ocRows = SC_OPCODE_ROWS,
|
|
ocColumn = SC_OPCODE_COLUMN,
|
|
ocRow = SC_OPCODE_ROW,
|
|
ocRRI = SC_OPCODE_RRI,
|
|
ocFV = SC_OPCODE_FV,
|
|
ocNper = SC_OPCODE_NPER,
|
|
ocRate = SC_OPCODE_RATE,
|
|
ocIpmt = SC_OPCODE_IPMT,
|
|
ocPpmt = SC_OPCODE_PPMT,
|
|
ocCumIpmt = SC_OPCODE_CUM_IPMT,
|
|
ocCumPrinc = SC_OPCODE_CUM_PRINC,
|
|
ocEffect = SC_OPCODE_EFFECT,
|
|
ocNominal = SC_OPCODE_NOMINAL,
|
|
ocSubTotal = SC_OPCODE_SUB_TOTAL,
|
|
ocRawSubtract = SC_OPCODE_RAWSUBTRACT,
|
|
ocIfs_MS = SC_OPCODE_IFS_MS,
|
|
ocSwitch_MS = SC_OPCODE_SWITCH_MS,
|
|
ocMinIfs_MS = SC_OPCODE_MINIFS_MS,
|
|
ocMaxIfs_MS = SC_OPCODE_MAXIFS_MS,
|
|
ocRoundSig = SC_OPCODE_ROUNDSIG,
|
|
// Database functions
|
|
ocDBSum = SC_OPCODE_DB_SUM,
|
|
ocDBCount = SC_OPCODE_DB_COUNT,
|
|
ocDBCount2 = SC_OPCODE_DB_COUNT_2,
|
|
ocDBAverage = SC_OPCODE_DB_AVERAGE,
|
|
ocDBGet = SC_OPCODE_DB_GET,
|
|
ocDBMax = SC_OPCODE_DB_MAX,
|
|
ocDBMin = SC_OPCODE_DB_MIN,
|
|
ocDBProduct = SC_OPCODE_DB_PRODUCT,
|
|
ocDBStdDev = SC_OPCODE_DB_STD_DEV,
|
|
ocDBStdDevP = SC_OPCODE_DB_STD_DEV_P,
|
|
ocDBVar = SC_OPCODE_DB_VAR,
|
|
ocDBVarP = SC_OPCODE_DB_VAR_P,
|
|
// Management functions
|
|
ocIndirect = SC_OPCODE_INDIRECT,
|
|
ocAddress = SC_OPCODE_ADDRESS,
|
|
ocMatch = SC_OPCODE_MATCH,
|
|
ocXMatch = SC_OPCODE_X_MATCH,
|
|
ocCountEmptyCells = SC_OPCODE_COUNT_EMPTY_CELLS,
|
|
ocCountIf = SC_OPCODE_COUNT_IF,
|
|
ocSumIf = SC_OPCODE_SUM_IF,
|
|
ocAverageIf = SC_OPCODE_AVERAGE_IF,
|
|
ocSumIfs = SC_OPCODE_SUM_IFS,
|
|
ocAverageIfs = SC_OPCODE_AVERAGE_IFS,
|
|
ocCountIfs = SC_OPCODE_COUNT_IFS,
|
|
ocLookup = SC_OPCODE_LOOKUP,
|
|
ocVLookup = SC_OPCODE_V_LOOKUP,
|
|
ocXLookup = SC_OPCODE_X_LOOKUP,
|
|
ocHLookup = SC_OPCODE_H_LOOKUP,
|
|
ocMultiArea = SC_OPCODE_MULTI_AREA,
|
|
ocOffset = SC_OPCODE_OFFSET,
|
|
ocIndex = SC_OPCODE_INDEX,
|
|
ocAreas = SC_OPCODE_AREAS,
|
|
// String functions
|
|
ocCurrency = SC_OPCODE_CURRENCY,
|
|
ocReplace = SC_OPCODE_REPLACE,
|
|
ocFixed = SC_OPCODE_FIXED,
|
|
ocFind = SC_OPCODE_FIND,
|
|
ocExact = SC_OPCODE_EXACT,
|
|
ocLeft = SC_OPCODE_LEFT,
|
|
ocRight = SC_OPCODE_RIGHT,
|
|
ocSearch = SC_OPCODE_SEARCH,
|
|
ocMid = SC_OPCODE_MID,
|
|
ocText = SC_OPCODE_TEXT,
|
|
ocSubstitute = SC_OPCODE_SUBSTITUTE,
|
|
ocRept = SC_OPCODE_REPT,
|
|
ocConcat = SC_OPCODE_CONCAT,
|
|
ocConcat_MS = SC_OPCODE_CONCAT_MS,
|
|
ocTextJoin_MS = SC_OPCODE_TEXTJOIN_MS,
|
|
ocLenB = SC_OPCODE_LENB,
|
|
ocRightB = SC_OPCODE_RIGHTB,
|
|
ocLeftB = SC_OPCODE_LEFTB,
|
|
ocMidB = SC_OPCODE_MIDB,
|
|
ocReplaceB = SC_OPCODE_REPLACEB,
|
|
ocFindB = SC_OPCODE_FINDB,
|
|
ocSearchB = SC_OPCODE_SEARCHB,
|
|
ocNumberValue = SC_OPCODE_NUMBERVALUE,
|
|
ocRegex = SC_OPCODE_REGEX,
|
|
// Matrix functions
|
|
ocMatValue = SC_OPCODE_MAT_VALUE,
|
|
ocMatDet = SC_OPCODE_MAT_DET,
|
|
ocMatInv = SC_OPCODE_MAT_INV,
|
|
ocMatMult = SC_OPCODE_MAT_MULT,
|
|
ocMatTrans = SC_OPCODE_MAT_TRANS,
|
|
ocMatrixUnit = SC_OPCODE_MATRIX_UNIT,
|
|
// BackSolver
|
|
ocBackSolver = SC_OPCODE_BACK_SOLVER,
|
|
// Statistical functions
|
|
ocHypGeomDist = SC_OPCODE_HYP_GEOM_DIST,
|
|
ocHypGeomDist_MS = SC_OPCODE_HYP_GEOM_DIST_MS,
|
|
ocLogNormDist = SC_OPCODE_LOG_NORM_DIST,
|
|
ocLogNormDist_MS = SC_OPCODE_LOG_NORM_DIST_MS,
|
|
ocTDist = SC_OPCODE_T_DIST,
|
|
ocTDist_MS = SC_OPCODE_T_DIST_MS,
|
|
ocTDist_RT = SC_OPCODE_T_DIST_RT,
|
|
ocTDist_2T = SC_OPCODE_T_DIST_2T,
|
|
ocFDist = SC_OPCODE_F_DIST,
|
|
ocFDist_LT = SC_OPCODE_F_DIST_LT,
|
|
ocFDist_RT = SC_OPCODE_F_DIST_RT,
|
|
ocChiDist = SC_OPCODE_CHI_DIST,
|
|
ocChiDist_MS = SC_OPCODE_CHI_DIST_MS,
|
|
ocChiSqDist = SC_OPCODE_CHISQ_DIST,
|
|
ocChiSqDist_MS = SC_OPCODE_CHISQ_DIST_MS,
|
|
ocChiSqInv = SC_OPCODE_CHISQ_INV,
|
|
ocChiSqInv_MS = SC_OPCODE_CHISQ_INV_MS,
|
|
ocWeibull = SC_OPCODE_WEIBULL,
|
|
ocWeibull_MS = SC_OPCODE_WEIBULL_MS,
|
|
ocNegBinomVert = SC_OPCODE_NEG_BINOM_VERT,
|
|
ocNegBinomDist_MS = SC_OPCODE_NEG_BINOM_DIST_MS,
|
|
ocCritBinom = SC_OPCODE_CRIT_BINOM,
|
|
ocKurt = SC_OPCODE_KURT,
|
|
ocHarMean = SC_OPCODE_HAR_MEAN,
|
|
ocGeoMean = SC_OPCODE_GEO_MEAN,
|
|
ocStandard = SC_OPCODE_STANDARD,
|
|
ocAveDev = SC_OPCODE_AVE_DEV,
|
|
ocSkew = SC_OPCODE_SKEW,
|
|
ocSkewp = SC_OPCODE_SKEWP,
|
|
ocDevSq = SC_OPCODE_DEV_SQ,
|
|
ocMedian = SC_OPCODE_MEDIAN,
|
|
ocModalValue = SC_OPCODE_MODAL_VALUE,
|
|
ocModalValue_MS = SC_OPCODE_MODAL_VALUE_MS,
|
|
ocModalValue_Multi = SC_OPCODE_MODAL_VALUE_MULTI,
|
|
ocZTest = SC_OPCODE_Z_TEST,
|
|
ocZTest_MS = SC_OPCODE_Z_TEST_MS,
|
|
ocAggregate = SC_OPCODE_AGGREGATE,
|
|
ocTTest = SC_OPCODE_T_TEST,
|
|
ocTTest_MS = SC_OPCODE_T_TEST_MS,
|
|
ocRank = SC_OPCODE_RANK,
|
|
ocPercentile = SC_OPCODE_PERCENTILE,
|
|
ocPercentrank = SC_OPCODE_PERCENT_RANK,
|
|
ocPercentile_Inc = SC_OPCODE_PERCENTILE_INC,
|
|
ocPercentrank_Inc = SC_OPCODE_PERCENT_RANK_INC,
|
|
ocQuartile_Inc = SC_OPCODE_QUARTILE_INC,
|
|
ocRank_Eq = SC_OPCODE_RANK_EQ,
|
|
ocPercentile_Exc = SC_OPCODE_PERCENTILE_EXC,
|
|
ocPercentrank_Exc = SC_OPCODE_PERCENT_RANK_EXC,
|
|
ocQuartile_Exc = SC_OPCODE_QUARTILE_EXC,
|
|
ocRank_Avg = SC_OPCODE_RANK_AVG,
|
|
ocLarge = SC_OPCODE_LARGE,
|
|
ocSmall = SC_OPCODE_SMALL,
|
|
ocFrequency = SC_OPCODE_FREQUENCY,
|
|
ocQuartile = SC_OPCODE_QUARTILE,
|
|
ocNormInv = SC_OPCODE_NORM_INV,
|
|
ocNormInv_MS = SC_OPCODE_NORM_INV_MS,
|
|
ocConfidence = SC_OPCODE_CONFIDENCE,
|
|
ocConfidence_N = SC_OPCODE_CONFIDENCE_N,
|
|
ocConfidence_T = SC_OPCODE_CONFIDENCE_T,
|
|
ocFTest = SC_OPCODE_F_TEST,
|
|
ocFTest_MS = SC_OPCODE_F_TEST_MS,
|
|
ocTrimMean = SC_OPCODE_TRIM_MEAN,
|
|
ocProb = SC_OPCODE_PROB,
|
|
ocCorrel = SC_OPCODE_CORREL,
|
|
ocCovar = SC_OPCODE_COVAR,
|
|
ocCovarianceP = SC_OPCODE_COVARIANCE_P,
|
|
ocCovarianceS = SC_OPCODE_COVARIANCE_S,
|
|
ocPearson = SC_OPCODE_PEARSON,
|
|
ocRSQ = SC_OPCODE_RSQ,
|
|
ocSTEYX = SC_OPCODE_STEYX,
|
|
ocSlope = SC_OPCODE_SLOPE,
|
|
ocIntercept = SC_OPCODE_INTERCEPT,
|
|
ocTrend = SC_OPCODE_TREND,
|
|
ocGrowth = SC_OPCODE_GROWTH,
|
|
ocLinest = SC_OPCODE_LINEST,
|
|
ocLogest = SC_OPCODE_LOGEST,
|
|
ocForecast = SC_OPCODE_FORECAST,
|
|
ocForecast_ETS_ADD = SC_OPCODE_FORECAST_ETS_ADD,
|
|
ocForecast_ETS_SEA = SC_OPCODE_FORECAST_ETS_SEA,
|
|
ocForecast_ETS_MUL = SC_OPCODE_FORECAST_ETS_MUL,
|
|
ocForecast_ETS_PIA = SC_OPCODE_FORECAST_ETS_PIA,
|
|
ocForecast_ETS_PIM = SC_OPCODE_FORECAST_ETS_PIM,
|
|
ocForecast_ETS_STA = SC_OPCODE_FORECAST_ETS_STA,
|
|
ocForecast_ETS_STM = SC_OPCODE_FORECAST_ETS_STM,
|
|
ocForecast_LIN = SC_OPCODE_FORECAST_LIN,
|
|
ocChiInv = SC_OPCODE_CHI_INV,
|
|
ocChiInv_MS = SC_OPCODE_CHI_INV_MS,
|
|
ocGammaDist = SC_OPCODE_GAMMA_DIST,
|
|
ocGammaDist_MS = SC_OPCODE_GAMMA_DIST_MS,
|
|
ocGammaInv = SC_OPCODE_GAMMA_INV,
|
|
ocGammaInv_MS = SC_OPCODE_GAMMA_INV_MS,
|
|
ocTInv = SC_OPCODE_T_INV,
|
|
ocTInv_2T = SC_OPCODE_T_INV_2T,
|
|
ocTInv_MS = SC_OPCODE_T_INV_MS,
|
|
ocFInv = SC_OPCODE_F_INV,
|
|
ocFInv_LT = SC_OPCODE_F_INV_LT,
|
|
ocFInv_RT = SC_OPCODE_F_INV_RT,
|
|
ocChiTest = SC_OPCODE_CHI_TEST,
|
|
ocChiTest_MS = SC_OPCODE_CHI_TEST_MS,
|
|
ocLogInv = SC_OPCODE_LOG_INV,
|
|
ocLogInv_MS = SC_OPCODE_LOG_INV_MS,
|
|
ocTableOp = SC_OPCODE_TABLE_OP,
|
|
ocBetaDist = SC_OPCODE_BETA_DIST,
|
|
ocBetaInv = SC_OPCODE_BETA_INV,
|
|
ocBetaDist_MS = SC_OPCODE_BETA_DIST_MS,
|
|
ocBetaInv_MS = SC_OPCODE_BETA_INV_MS,
|
|
// Bit functions
|
|
ocBitAnd = SC_OPCODE_BITAND,
|
|
ocBitOr = SC_OPCODE_BITOR,
|
|
ocBitXor = SC_OPCODE_BITXOR,
|
|
ocBitRshift = SC_OPCODE_BITRSHIFT,
|
|
ocBitLshift = SC_OPCODE_BITLSHIFT,
|
|
// miscellaneous
|
|
ocWeek = SC_OPCODE_WEEK,
|
|
ocIsoWeeknum = SC_OPCODE_ISOWEEKNUM,
|
|
ocWeeknumOOo = SC_OPCODE_WEEKNUM_OOO,
|
|
ocGetDayOfWeek = SC_OPCODE_GET_DAY_OF_WEEK,
|
|
ocNetWorkdays = SC_OPCODE_NETWORKDAYS,
|
|
ocNetWorkdays_MS = SC_OPCODE_NETWORKDAYS_MS,
|
|
ocWorkday_MS = SC_OPCODE_WORKDAY_MS,
|
|
ocNoName = SC_OPCODE_NO_NAME,
|
|
ocStyle = SC_OPCODE_STYLE,
|
|
ocDde = SC_OPCODE_DDE,
|
|
ocBase = SC_OPCODE_BASE,
|
|
ocSheet = SC_OPCODE_SHEET,
|
|
ocSheets = SC_OPCODE_SHEETS,
|
|
ocMinA = SC_OPCODE_MIN_A,
|
|
ocMaxA = SC_OPCODE_MAX_A,
|
|
ocAverageA = SC_OPCODE_AVERAGE_A,
|
|
ocStDevA = SC_OPCODE_ST_DEV_A,
|
|
ocStDevPA = SC_OPCODE_ST_DEV_P_A,
|
|
ocVarA = SC_OPCODE_VAR_A,
|
|
ocVarPA = SC_OPCODE_VAR_P_A,
|
|
ocEasterSunday = SC_OPCODE_EASTERSUNDAY,
|
|
ocDecimal = SC_OPCODE_DECIMAL,
|
|
ocConvertOOo = SC_OPCODE_CONVERT_OOO,
|
|
ocRoman = SC_OPCODE_ROMAN,
|
|
ocHyperLink = SC_OPCODE_HYPERLINK,
|
|
ocGetPivotData = SC_OPCODE_GET_PIVOT_DATA,
|
|
ocEuroConvert = SC_OPCODE_EUROCONVERT,
|
|
ocFilterXML = SC_OPCODE_FILTERXML,
|
|
ocWebservice = SC_OPCODE_WEBSERVICE,
|
|
ocColor = SC_OPCODE_COLOR,
|
|
ocErf_MS = SC_OPCODE_ERF_MS,
|
|
ocErfc_MS = SC_OPCODE_ERFC_MS,
|
|
ocEncodeURL = SC_OPCODE_ENCODEURL,
|
|
ocFourier = SC_OPCODE_FOURIER,
|
|
ocRandbetweenNV = SC_OPCODE_RANDBETWEEN_NV,
|
|
ocFilter = SC_OPCODE_FILTER,
|
|
ocSort = SC_OPCODE_SORT,
|
|
ocSortBy = SC_OPCODE_SORTBY,
|
|
ocMatSequence = SC_OPCODE_MAT_SEQUENCE,
|
|
ocRandArray = SC_OPCODE_RANDARRAY,
|
|
ocUnique = SC_OPCODE_UNIQUE,
|
|
// internal stuff
|
|
ocInternalBegin = SC_OPCODE_INTERNAL_BEGIN,
|
|
ocTTT = SC_OPCODE_TTT,
|
|
ocDebugVar = SC_OPCODE_DEBUG_VAR,
|
|
ocInternalEnd = SC_OPCODE_INTERNAL_END,
|
|
// from here on ExtraData
|
|
ocDataToken1 = SC_OPCODE_DATA_TOKEN_1,
|
|
// no OpCode
|
|
ocNone = SC_OPCODE_NONE
|
|
};
|
|
|
|
// Only to be used for debugging output. No guarantee of stability of the
|
|
// return value.
|
|
|
|
// Turn this into an operator<< when OpCode becomes a scoped enum
|
|
|
|
inline std::string OpCodeEnumToString(OpCode eCode)
|
|
{
|
|
switch (eCode)
|
|
{
|
|
case ocPush: return "Push";
|
|
case ocCall: return "Call";
|
|
case ocStop: return "Stop";
|
|
case ocExternal: return "External";
|
|
case ocName: return "Name";
|
|
case ocIf: return "If";
|
|
case ocIfError: return "IfError";
|
|
case ocIfNA: return "IfNA";
|
|
case ocChoose: return "Choose";
|
|
case ocOpen: return "Open";
|
|
case ocClose: return "Close";
|
|
case ocTableRefOpen: return "TableRefOpen";
|
|
case ocTableRefClose: return "TableRefClose";
|
|
case ocSep: return "Sep";
|
|
case ocArrayOpen: return "ArrayOpen";
|
|
case ocArrayClose: return "ArrayClose";
|
|
case ocArrayRowSep: return "ArrayRowSep";
|
|
case ocArrayColSep: return "ArrayColSep";
|
|
case ocMissing: return "Missing";
|
|
case ocBad: return "Bad";
|
|
case ocStringXML: return "StringXML";
|
|
case ocStringName: return "StringName";
|
|
case ocSpaces: return "Spaces";
|
|
case ocWhitespace: return "Whitespace";
|
|
case ocMatRef: return "MatRef";
|
|
case ocTableRefItemAll: return "TableRefItemAll";
|
|
case ocTableRefItemHeaders: return "TableRefItemHeaders";
|
|
case ocTableRefItemData: return "TableRefItemData";
|
|
case ocTableRefItemTotals: return "TableRefItemTotals";
|
|
case ocTableRefItemThisRow: return "TableRefItemThisRow";
|
|
case ocSkip: return "Skip";
|
|
case ocDBArea: return "DBArea";
|
|
case ocTableRef: return "TableRef";
|
|
case ocMacro: return "Macro";
|
|
case ocColRowName: return "ColRowName";
|
|
case ocColRowNameAuto: return "ColRowNameAuto";
|
|
case ocPercentSign: return "PercentSign";
|
|
case ocErrNull: return "ErrNull";
|
|
case ocErrDivZero: return "ErrDivZero";
|
|
case ocErrValue: return "ErrValue";
|
|
case ocErrRef: return "ErrRef";
|
|
case ocErrName: return "ErrName";
|
|
case ocErrNum: return "ErrNum";
|
|
case ocErrNA: return "ErrNA";
|
|
case ocAdd: return "Add";
|
|
case ocSub: return "Sub";
|
|
case ocMul: return "Mul";
|
|
case ocDiv: return "Div";
|
|
case ocAmpersand: return "Ampersand";
|
|
case ocPow: return "Pow";
|
|
case ocEqual: return "Equal";
|
|
case ocNotEqual: return "NotEqual";
|
|
case ocLess: return "Less";
|
|
case ocGreater: return "Greater";
|
|
case ocLessEqual: return "LessEqual";
|
|
case ocGreaterEqual: return "GreaterEqual";
|
|
case ocAnd: return "And";
|
|
case ocOr: return "Or";
|
|
case ocXor: return "Xor";
|
|
case ocIntersect: return "Intersect";
|
|
case ocUnion: return "Union";
|
|
case ocRange: return "Range";
|
|
case ocNot: return "Not";
|
|
case ocNeg: return "Neg";
|
|
case ocNegSub: return "NegSub";
|
|
case ocPi: return "Pi";
|
|
case ocRandom: return "Random";
|
|
case ocRandomNV: return "RandomNV";
|
|
case ocTrue: return "True";
|
|
case ocFalse: return "False";
|
|
case ocGetActDate: return "GetActDate";
|
|
case ocGetActTime: return "GetActTime";
|
|
case ocNotAvail: return "NotAvail";
|
|
case ocCurrent: return "Current";
|
|
case ocDeg: return "Deg";
|
|
case ocRad: return "Rad";
|
|
case ocSin: return "Sin";
|
|
case ocCos: return "Cos";
|
|
case ocTan: return "Tan";
|
|
case ocCot: return "Cot";
|
|
case ocArcSin: return "ArcSin";
|
|
case ocArcCos: return "ArcCos";
|
|
case ocArcTan: return "ArcTan";
|
|
case ocArcCot: return "ArcCot";
|
|
case ocSinHyp: return "SinHyp";
|
|
case ocCosHyp: return "CosHyp";
|
|
case ocTanHyp: return "TanHyp";
|
|
case ocCotHyp: return "CotHyp";
|
|
case ocArcSinHyp: return "ArcSinHyp";
|
|
case ocArcCosHyp: return "ArcCosHyp";
|
|
case ocArcTanHyp: return "ArcTanHyp";
|
|
case ocArcCotHyp: return "ArcCotHyp";
|
|
case ocCosecant: return "Cosecant";
|
|
case ocSecant: return "Secant";
|
|
case ocCosecantHyp: return "CosecantHyp";
|
|
case ocSecantHyp: return "SecantHyp";
|
|
case ocExp: return "Exp";
|
|
case ocLn: return "Ln";
|
|
case ocSqrt: return "Sqrt";
|
|
case ocFact: return "Fact";
|
|
case ocGetYear: return "GetYear";
|
|
case ocGetMonth: return "GetMonth";
|
|
case ocGetDay: return "GetDay";
|
|
case ocGetHour: return "GetHour";
|
|
case ocGetMin: return "GetMin";
|
|
case ocGetSec: return "GetSec";
|
|
case ocPlusMinus: return "PlusMinus";
|
|
case ocAbs: return "Abs";
|
|
case ocInt: return "Int";
|
|
case ocPhi: return "Phi";
|
|
case ocGauss: return "Gauss";
|
|
case ocIsEmpty: return "IsEmpty";
|
|
case ocIsString: return "IsString";
|
|
case ocIsNonString: return "IsNonString";
|
|
case ocIsLogical: return "IsLogical";
|
|
case ocType: return "Type";
|
|
case ocCell: return "Cell";
|
|
case ocIsRef: return "IsRef";
|
|
case ocIsValue: return "IsValue";
|
|
case ocIsFormula: return "IsFormula";
|
|
case ocIsNA: return "IsNA";
|
|
case ocIsErr: return "IsErr";
|
|
case ocIsError: return "IsError";
|
|
case ocIsEven: return "IsEven";
|
|
case ocIsOdd: return "IsOdd";
|
|
case ocN: return "N";
|
|
case ocGetDateValue: return "GetDateValue";
|
|
case ocGetTimeValue: return "GetTimeValue";
|
|
case ocCode: return "Code";
|
|
case ocTrim: return "Trim";
|
|
case ocUpper: return "Upper";
|
|
case ocProper: return "Proper";
|
|
case ocLower: return "Lower";
|
|
case ocLen: return "Len";
|
|
case ocT: return "T";
|
|
case ocValue: return "Value";
|
|
case ocClean: return "Clean";
|
|
case ocChar: return "Char";
|
|
case ocLog10: return "Log10";
|
|
case ocEven: return "Even";
|
|
case ocOdd: return "Odd";
|
|
case ocStdNormDist: return "StdNormDist";
|
|
case ocStdNormDist_MS: return "StdNormDist_MS";
|
|
case ocFisher: return "Fisher";
|
|
case ocFisherInv: return "FisherInv";
|
|
case ocSNormInv: return "SNormInv";
|
|
case ocSNormInv_MS: return "SNormInv_MS";
|
|
case ocGammaLn: return "GammaLn";
|
|
case ocGammaLn_MS: return "GammaLn_MS";
|
|
case ocGamma: return "Gamma";
|
|
case ocErrorType: return "ErrorType";
|
|
case ocErrorType_ODF: return "ErrorType_ODF";
|
|
case ocFormula: return "Formula";
|
|
case ocArabic: return "Arabic";
|
|
case ocInfo: return "Info";
|
|
case ocBahtText: return "BahtText";
|
|
case ocJis: return "Jis";
|
|
case ocAsc: return "Asc";
|
|
case ocUnicode: return "Unicode";
|
|
case ocUnichar: return "Unichar";
|
|
case ocArcTan2: return "ArcTan2";
|
|
case ocCeil: return "Ceil";
|
|
case ocCeil_MS: return "Ceil_MS";
|
|
case ocCeil_Precise: return "Ceil_Precise";
|
|
case ocCeil_ISO: return "Ceil_ISO";
|
|
case ocCeil_Math: return "Ceil_Math";
|
|
case ocFloor: return "Floor";
|
|
case ocFloor_MS: return "Floor_MS";
|
|
case ocFloor_Math: return "Floor_Math";
|
|
case ocFloor_Precise: return "Floor_Precise";
|
|
case ocRound: return "Round";
|
|
case ocRoundUp: return "RoundUp";
|
|
case ocRoundDown: return "RoundDown";
|
|
case ocTrunc: return "Trunc";
|
|
case ocLog: return "Log";
|
|
case ocPower: return "Power";
|
|
case ocGCD: return "GCD";
|
|
case ocLCM: return "LCM";
|
|
case ocMod: return "Mod";
|
|
case ocSumProduct: return "SumProduct";
|
|
case ocSumSQ: return "SumSQ";
|
|
case ocSumX2MY2: return "SumX2MY2";
|
|
case ocSumX2DY2: return "SumX2DY2";
|
|
case ocSumXMY2: return "SumXMY2";
|
|
case ocGetDate: return "GetDate";
|
|
case ocGetTime: return "GetTime";
|
|
case ocGetDiffDate: return "GetDiffDate";
|
|
case ocGetDiffDate360: return "GetDiffDate360";
|
|
case ocGetDateDif: return "GetDateDif";
|
|
case ocMin: return "Min";
|
|
case ocMax: return "Max";
|
|
case ocSum: return "Sum";
|
|
case ocProduct: return "Product";
|
|
case ocAverage: return "Average";
|
|
case ocCount: return "Count";
|
|
case ocCount2: return "Count2";
|
|
case ocNPV: return "NPV";
|
|
case ocIRR: return "IRR";
|
|
case ocMIRR: return "MIRR";
|
|
case ocISPMT: return "ISPMT";
|
|
case ocVar: return "Var";
|
|
case ocVarP: return "VarP";
|
|
case ocVarP_MS: return "VarP_MS";
|
|
case ocVarS: return "VarS";
|
|
case ocStDev: return "StDev";
|
|
case ocStDevP: return "StDevP";
|
|
case ocStDevP_MS: return "StDevP_MS";
|
|
case ocStDevS: return "StDevS";
|
|
case ocB: return "B";
|
|
case ocNormDist: return "NormDist";
|
|
case ocNormDist_MS: return "NormDist_MS";
|
|
case ocExpDist: return "ExpDist";
|
|
case ocExpDist_MS: return "ExpDist_MS";
|
|
case ocBinomDist: return "BinomDist";
|
|
case ocBinomDist_MS: return "BinomDist_MS";
|
|
case ocBinomInv: return "BinomInv";
|
|
case ocPoissonDist: return "PoissonDist";
|
|
case ocPoissonDist_MS: return "PoissonDist_MS";
|
|
case ocCombin: return "Combin";
|
|
case ocCombinA: return "CombinA";
|
|
case ocPermut: return "Permut";
|
|
case ocPermutationA: return "PermutationA";
|
|
case ocPV: return "PV";
|
|
case ocSYD: return "SYD";
|
|
case ocDDB: return "DDB";
|
|
case ocDB: return "DB";
|
|
case ocVBD: return "VBD";
|
|
case ocPDuration: return "PDuration";
|
|
case ocSLN: return "SLN";
|
|
case ocPMT: return "PMT";
|
|
case ocColumns: return "Columns";
|
|
case ocRows: return "Rows";
|
|
case ocColumn: return "Column";
|
|
case ocRow: return "Row";
|
|
case ocRRI: return "RRI";
|
|
case ocFV: return "FV";
|
|
case ocNper: return "Nper";
|
|
case ocRate: return "Rate";
|
|
case ocIpmt: return "Ipmt";
|
|
case ocPpmt: return "Ppmt";
|
|
case ocCumIpmt: return "CumIpmt";
|
|
case ocCumPrinc: return "CumPrinc";
|
|
case ocEffect: return "Effect";
|
|
case ocNominal: return "Nominal";
|
|
case ocSubTotal: return "SubTotal";
|
|
case ocRawSubtract: return "RawSubtract";
|
|
case ocIfs_MS: return "Ifs_MS";
|
|
case ocSwitch_MS: return "Switch_MS";
|
|
case ocMinIfs_MS: return "MinIfs_MS";
|
|
case ocMaxIfs_MS: return "MaxIfs_MS";
|
|
case ocRoundSig: return "RoundSig";
|
|
case ocDBSum: return "DBSum";
|
|
case ocDBCount: return "DBCount";
|
|
case ocDBCount2: return "DBCount2";
|
|
case ocDBAverage: return "DBAverage";
|
|
case ocDBGet: return "DBGet";
|
|
case ocDBMax: return "DBMax";
|
|
case ocDBMin: return "DBMin";
|
|
case ocDBProduct: return "DBProduct";
|
|
case ocDBStdDev: return "DBStdDev";
|
|
case ocDBStdDevP: return "DBStdDevP";
|
|
case ocDBVar: return "DBVar";
|
|
case ocDBVarP: return "DBVarP";
|
|
case ocIndirect: return "Indirect";
|
|
case ocAddress: return "Address";
|
|
case ocMatch: return "Match";
|
|
case ocXMatch: return "XMatch";
|
|
case ocCountEmptyCells: return "CountEmptyCells";
|
|
case ocCountIf: return "CountIf";
|
|
case ocSumIf: return "SumIf";
|
|
case ocAverageIf: return "AverageIf";
|
|
case ocSumIfs: return "SumIfs";
|
|
case ocAverageIfs: return "AverageIfs";
|
|
case ocCountIfs: return "CountIfs";
|
|
case ocLookup: return "Lookup";
|
|
case ocVLookup: return "VLookup";
|
|
case ocXLookup: return "XLookup";
|
|
case ocHLookup: return "HLookup";
|
|
case ocMultiArea: return "MultiArea";
|
|
case ocOffset: return "Offset";
|
|
case ocIndex: return "Index";
|
|
case ocAreas: return "Areas";
|
|
case ocCurrency: return "Currency";
|
|
case ocReplace: return "Replace";
|
|
case ocFixed: return "Fixed";
|
|
case ocFind: return "Find";
|
|
case ocExact: return "Exact";
|
|
case ocLeft: return "Left";
|
|
case ocRight: return "Right";
|
|
case ocSearch: return "Search";
|
|
case ocMid: return "Mid";
|
|
case ocText: return "Text";
|
|
case ocSubstitute: return "Substitute";
|
|
case ocRept: return "Rept";
|
|
case ocRegex: return "Regex";
|
|
case ocConcat: return "Concat";
|
|
case ocConcat_MS: return "Concat_MS";
|
|
case ocTextJoin_MS: return "TextJoin_MS";
|
|
case ocLenB: return "LenB";
|
|
case ocRightB: return "RightB";
|
|
case ocLeftB: return "LeftB";
|
|
case ocMidB: return "MidB";
|
|
case ocReplaceB: return "ReplaceB";
|
|
case ocFindB: return "FindB";
|
|
case ocSearchB: return "SearchB";
|
|
case ocNumberValue: return "NumberValue";
|
|
case ocMatValue: return "MatValue";
|
|
case ocMatDet: return "MatDet";
|
|
case ocMatInv: return "MatInv";
|
|
case ocMatMult: return "MatMult";
|
|
case ocMatSequence: return "MatSequence";
|
|
case ocMatTrans: return "MatTrans";
|
|
case ocMatrixUnit: return "MatrixUnit";
|
|
case ocBackSolver: return "BackSolver";
|
|
case ocHypGeomDist: return "HypGeomDist";
|
|
case ocHypGeomDist_MS: return "HypGeomDist_MS";
|
|
case ocLogNormDist: return "LogNormDist";
|
|
case ocLogNormDist_MS: return "LogNormDist_MS";
|
|
case ocTDist: return "TDist";
|
|
case ocTDist_MS: return "TDist_MS";
|
|
case ocTDist_RT: return "TDist_RT";
|
|
case ocTDist_2T: return "TDist_2T";
|
|
case ocFDist: return "FDist";
|
|
case ocFDist_LT: return "FDist_LT";
|
|
case ocFDist_RT: return "FDist_RT";
|
|
case ocChiDist: return "ChiDist";
|
|
case ocChiDist_MS: return "ChiDist_MS";
|
|
case ocChiSqDist: return "ChiSqDist";
|
|
case ocChiSqDist_MS: return "ChiSqDist_MS";
|
|
case ocChiSqInv: return "ChiSqInv";
|
|
case ocChiSqInv_MS: return "ChiSqInv_MS";
|
|
case ocWeibull: return "Weibull";
|
|
case ocWeibull_MS: return "Weibull_MS";
|
|
case ocNegBinomVert: return "NegBinomVert";
|
|
case ocNegBinomDist_MS: return "NegBinomDist_MS";
|
|
case ocCritBinom: return "CritBinom";
|
|
case ocKurt: return "Kurt";
|
|
case ocHarMean: return "HarMean";
|
|
case ocGeoMean: return "GeoMean";
|
|
case ocStandard: return "Standard";
|
|
case ocAveDev: return "AveDev";
|
|
case ocSkew: return "Skew";
|
|
case ocSkewp: return "Skewp";
|
|
case ocDevSq: return "DevSq";
|
|
case ocMedian: return "Median";
|
|
case ocModalValue: return "ModalValue";
|
|
case ocModalValue_MS: return "ModalValue_MS";
|
|
case ocModalValue_Multi: return "ModalValue_Multi";
|
|
case ocZTest: return "ZTest";
|
|
case ocZTest_MS: return "ZTest_MS";
|
|
case ocAggregate: return "Aggregate";
|
|
case ocTTest: return "TTest";
|
|
case ocTTest_MS: return "TTest_MS";
|
|
case ocRank: return "Rank";
|
|
case ocPercentile: return "Percentile";
|
|
case ocPercentrank: return "Percentrank";
|
|
case ocPercentile_Inc: return "Percentile_Inc";
|
|
case ocPercentrank_Inc: return "Percentrank_Inc";
|
|
case ocQuartile_Inc: return "Quartile_Inc";
|
|
case ocRank_Eq: return "Rank_Eq";
|
|
case ocPercentile_Exc: return "Percentile_Exc";
|
|
case ocPercentrank_Exc: return "Percentrank_Exc";
|
|
case ocQuartile_Exc: return "Quartile_Exc";
|
|
case ocRank_Avg: return "Rank_Avg";
|
|
case ocLarge: return "Large";
|
|
case ocSmall: return "Small";
|
|
case ocFrequency: return "Frequency";
|
|
case ocQuartile: return "Quartile";
|
|
case ocNormInv: return "NormInv";
|
|
case ocNormInv_MS: return "NormInv_MS";
|
|
case ocConfidence: return "Confidence";
|
|
case ocConfidence_N: return "Confidence_N";
|
|
case ocConfidence_T: return "Confidence_T";
|
|
case ocFTest: return "FTest";
|
|
case ocFTest_MS: return "FTest_MS";
|
|
case ocTrimMean: return "TrimMean";
|
|
case ocProb: return "Prob";
|
|
case ocCorrel: return "Correl";
|
|
case ocCovar: return "Covar";
|
|
case ocCovarianceP: return "CovarianceP";
|
|
case ocCovarianceS: return "CovarianceS";
|
|
case ocPearson: return "Pearson";
|
|
case ocRSQ: return "RSQ";
|
|
case ocSTEYX: return "STEYX";
|
|
case ocSlope: return "Slope";
|
|
case ocIntercept: return "Intercept";
|
|
case ocTrend: return "Trend";
|
|
case ocGrowth: return "Growth";
|
|
case ocLinest: return "Linest";
|
|
case ocLogest: return "Logest";
|
|
case ocForecast: return "Forecast";
|
|
case ocForecast_ETS_ADD: return "Forecast_ETS_ADD";
|
|
case ocForecast_ETS_SEA: return "Forecast_ETS_SEA";
|
|
case ocForecast_ETS_MUL: return "Forecast_ETS_MUL";
|
|
case ocForecast_ETS_PIA: return "Forecast_ETS_PIA";
|
|
case ocForecast_ETS_PIM: return "Forecast_ETS_PIM";
|
|
case ocForecast_ETS_STA: return "Forecast_ETS_STA";
|
|
case ocForecast_ETS_STM: return "Forecast_ETS_STM";
|
|
case ocForecast_LIN: return "Forecast_LIN";
|
|
case ocChiInv: return "ChiInv";
|
|
case ocChiInv_MS: return "ChiInv_MS";
|
|
case ocGammaDist: return "GammaDist";
|
|
case ocGammaDist_MS: return "GammaDist_MS";
|
|
case ocGammaInv: return "GammaInv";
|
|
case ocGammaInv_MS: return "GammaInv_MS";
|
|
case ocTInv: return "TInv";
|
|
case ocTInv_2T: return "TInv_2T";
|
|
case ocTInv_MS: return "TInv_MS";
|
|
case ocFInv: return "FInv";
|
|
case ocFInv_LT: return "FInv_LT";
|
|
case ocFInv_RT: return "FInv_RT";
|
|
case ocChiTest: return "ChiTest";
|
|
case ocChiTest_MS: return "ChiTest_MS";
|
|
case ocLogInv: return "LogInv";
|
|
case ocLogInv_MS: return "LogInv_MS";
|
|
case ocTableOp: return "TableOp";
|
|
case ocBetaDist: return "BetaDist";
|
|
case ocBetaInv: return "BetaInv";
|
|
case ocBetaDist_MS: return "BetaDist_MS";
|
|
case ocBetaInv_MS: return "BetaInv_MS";
|
|
case ocBitAnd: return "BitAnd";
|
|
case ocBitOr: return "BitOr";
|
|
case ocBitXor: return "BitXor";
|
|
case ocBitRshift: return "BitRshift";
|
|
case ocBitLshift: return "BitLshift";
|
|
case ocWeek: return "Week";
|
|
case ocIsoWeeknum: return "IsoWeeknum";
|
|
case ocWeeknumOOo: return "WeeknumOOo";
|
|
case ocGetDayOfWeek: return "GetDayOfWeek";
|
|
case ocNetWorkdays: return "NetWorkdays";
|
|
case ocNetWorkdays_MS: return "NetWorkdays_MS";
|
|
case ocWorkday_MS: return "Workday_MS";
|
|
case ocNoName: return "NoName";
|
|
case ocStyle: return "Style";
|
|
case ocDde: return "Dde";
|
|
case ocBase: return "Base";
|
|
case ocSheet: return "Sheet";
|
|
case ocSheets: return "Sheets";
|
|
case ocMinA: return "MinA";
|
|
case ocMaxA: return "MaxA";
|
|
case ocAverageA: return "AverageA";
|
|
case ocStDevA: return "StDevA";
|
|
case ocStDevPA: return "StDevPA";
|
|
case ocVarA: return "VarA";
|
|
case ocVarPA: return "VarPA";
|
|
case ocEasterSunday: return "EasterSunday";
|
|
case ocDecimal: return "Decimal";
|
|
case ocConvertOOo: return "ConvertOOo";
|
|
case ocRoman: return "Roman";
|
|
case ocHyperLink: return "HyperLink";
|
|
case ocGetPivotData: return "GetPivotData";
|
|
case ocEuroConvert: return "EuroConvert";
|
|
case ocFilterXML: return "FilterXML";
|
|
case ocWebservice: return "Webservice";
|
|
case ocColor: return "Color";
|
|
case ocErf_MS: return "Erf_MS";
|
|
case ocErfc_MS: return "Erfc_MS";
|
|
case ocEncodeURL: return "EncodeURL";
|
|
case ocFourier: return "Fourier";
|
|
case ocRandbetweenNV: return "RandbetweenNV";
|
|
case ocRandArray: return "RandArray";
|
|
case ocFilter: return "Filter";
|
|
case ocSort: return "Sort";
|
|
case ocSortBy: return "SortBy";
|
|
case ocUnique: return "Unique";
|
|
case ocLet: return "Let";
|
|
case ocTTT: return "TTT";
|
|
case ocDebugVar: return "DebugVar";
|
|
case ocDataToken1: return "DataToken1";
|
|
case ocNone: return "None";
|
|
}
|
|
std::ostringstream os;
|
|
os << static_cast<int>(eCode);
|
|
return os.str();
|
|
}
|
|
|
|
#endif
|
|
|
|
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|