blob: bb851bb10959d2cd2b140e0d7d1afa08f83775e6 [file] [log] [blame]
using System;
using System.Collections.Generic;
using System.Linq;
namespace AppsheetEpplus;
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 is not (null or string { Length: 0 })) {
result--;
}
}
return CreateResult(result, DataType.Integer);
}
}