| using System.Collections.Generic; |
| |
| namespace AppsheetEpplus; |
| |
| public class IsErr : ErrorHandlingFunction { |
| public override CompileResult Execute( |
| IEnumerable<FunctionArgument> arguments, |
| ParsingContext context) { |
| var isError = new IsError(); |
| var result = isError.Execute(arguments, context); |
| if ((bool)result.Result) { |
| var arg = GetFirstValue(arguments); |
| if (arg is ExcelDataProvider.IRangeInfo info) { |
| var e = info.GetValue(info.Address._fromRow, info.Address._fromCol) as ExcelErrorValue; |
| if (e != null && e.Type == eErrorType.Na) { |
| return CreateResult(false, DataType.Boolean); |
| } |
| } else { |
| if (arg is ExcelErrorValue value && value.Type == eErrorType.Na) { |
| return CreateResult(false, DataType.Boolean); |
| } |
| } |
| } |
| return result; |
| } |
| |
| public override CompileResult HandleError(string errorCode) { |
| return CreateResult(true, DataType.Boolean); |
| } |
| } |