blob: a5932acde41b7826d78372e686be27b01cfb578e [file] [log] [blame]
using OfficeOpenXml.FormulaParsing.Excel.Functions.Logical;
using OfficeOpenXml.FormulaParsing.ExpressionGraph;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace OfficeOpenXml.FormulaParsing.Excel.Functions.Math
{
public class CountBlank : ExcelFunction
{
public override CompileResult Execute(IEnumerable<FunctionArgument> arguments, ParsingContext context)
{
ValidateArguments(arguments, 1);
var arg = arguments.First();
if(!arg.IsExcelRange)throw new InvalidOperationException("CountBlank only support ranges as arguments");
var result = arg.ValueAsRangeInfo.GetNCells();
foreach (var cell in arg.ValueAsRangeInfo)
{
if (!(cell.Value == null || cell.Value == string.Empty))
{
result--;
}
}
return CreateResult(result, DataType.Integer);
}
}
}