Example #1
0
        /**
         * Evaluate a generic {@link ValueEval} argument to an array of double values that represents dates in POI.
         *
         * @param arg {@link ValueEval} an argument.
         * @param srcCellRow number cell row.
         * @param srcCellCol number cell column.
         * @return an array of doubles representing dates in POI.
         * @throws EvaluationException exception upon argument evaluation.
         */
        public double[] EvaluateDatesArg(ValueEval arg, int srcCellRow, int srcCellCol)
        {
            if (arg == null)
            {
                return(new double[0]);
            }

            if (arg is StringEval)
            {
                return(new double[] { EvaluateDateArg(arg, srcCellRow, srcCellCol) });
            }
            else if (arg is AreaEvalBase)
            {
                List <Double> valuesList = new List <Double>();
                AreaEvalBase  area       = (AreaEvalBase)arg;
                for (int i = area.FirstRow; i <= area.LastRow; i++)
                {
                    for (int j = area.FirstColumn; j <= area.LastColumn; j++)
                    {
                        valuesList.Add(EvaluateDateArg(area.GetValue(i, j), i, j));
                    }
                }
                double[] values = new double[valuesList.Count];
                for (int i = 0; i < valuesList.Count; i++)
                {
                    values[i] = valuesList[(i)];
                }
                return(values);
            }
            return(new double[] { OperandResolver.CoerceValueToDouble(arg) });
        }
Example #2
0
        /**
         * Evaluate a generic {@link ValueEval} argument to an array of double values that represents dates in POI.
         *
         * @param arg {@link ValueEval} an argument.
         * @param srcCellRow number cell row.
         * @param srcCellCol number cell column.
         * @return an array of doubles representing dates in POI.
         * @throws EvaluationException exception upon argument evaluation.
         */
        public double[] EvaluateDatesArg(ValueEval arg, int srcCellRow, int srcCellCol)
        {
            if (arg == null)
            {
                return(new double[0]);
            }

            if (arg is StringEval)
            {
                return(new double[] { EvaluateDateArg(arg, srcCellRow, srcCellCol) });
            }
            else if (arg is AreaEvalBase)
            {
                List <Double> valuesList = new List <Double>();
                AreaEvalBase  area       = (AreaEvalBase)arg;
                for (int i = area.FirstRow; i <= area.LastRow; i++)
                {
                    for (int j = area.FirstColumn; j <= area.LastColumn; j++)
                    {
                        // getValue() is replaced with getAbsoluteValue() because loop variables i, j are
                        // absolute indexes values, but getValue() works with relative indexes values
                        valuesList.Add(EvaluateDateArg(area.GetAbsoluteValue(i, j), i, j));
                    }
                }
                double[] values = new double[valuesList.Count];
                for (int i = 0; i < valuesList.Count; i++)
                {
                    values[i] = valuesList[(i)];
                }
                return(values);
            }
            return(new double[] { OperandResolver.CoerceValueToDouble(arg) });
        }