Exemple #1
0
        /**
         * Evaluate a generic {@link ValueEval} argument to a double value that represents a date in POI.
         *
         * @param arg {@link ValueEval} an argument.
         * @param srcCellRow number cell row.
         * @param srcCellCol number cell column.
         * @return a double representing a date in POI.
         * @throws EvaluationException exception upon argument evaluation.
         */
        public double EvaluateDateArg(ValueEval arg, int srcCellRow, int srcCellCol)
        {
            ValueEval ve = OperandResolver.GetSingleValue(arg, srcCellRow, (short)srcCellCol);

            if (ve is StringEval)
            {
                String strVal = ((StringEval)ve).StringValue;
                Double dVal   = OperandResolver.ParseDouble(strVal);
                if (!Double.IsNaN(dVal))
                {
                    return(dVal);
                }
                DateTime dt = DateParser.ParseDate(strVal);
                return(DateUtil.GetExcelDate(dt, false));
            }
            return(OperandResolver.CoerceValueToDouble(ve));
        }
Exemple #2
0
        private static double EvaluateDateArg(ValueEval arg, int srcCellRow, int srcCellCol)
        {
            ValueEval ve = OperandResolver.GetSingleValue(arg, srcCellRow, (short)srcCellCol);

            if (ve is StringEval)
            {
                string strVal = ((StringEval)ve).StringValue;
                Double dVal   = OperandResolver.ParseDouble(strVal);
                if (!double.IsNaN(dVal))
                {
                    return(dVal);
                }
                DateTime date = DateParser.ParseDate(strVal);
                return(Npoi.Core.SS.UserModel.DateUtil.GetExcelDate(date, false));
            }
            return(OperandResolver.CoerceValueToDouble(ve));
        }