blob: 23176aec28d7a12818dba2af8e527c64543febca [file] [log] [blame]
using System;
using System.Collections.Generic;
using System.Linq;
using OfficeOpenXml.FormulaParsing.ExpressionGraph;
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);
}
}