/** * 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)); }
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)); }