Beispiel #1
0
        private CompileResult CompileSingleCell(ExcelDataProvider.IRangeInfo result)
        {
            if (result.Address.Address == ExcelErrorValue.Values.Ref)
            {
                return(new CompileResult(eErrorType.Ref));
            }
            var cell = result.FirstOrDefault();

            if (cell == null)
            {
                return(CompileResult.Empty);
            }
            var factory       = new CompileResultFactory();
            var compileResult = factory.Create(cell.Value);

            if (_negate)
            {
                if (compileResult.IsNumeric)
                {
                    compileResult = new CompileResult(compileResult.ResultNumeric * -1, compileResult.DataType);
                }
                else if (compileResult.DataType == DataType.String)
                {
                    if (compileResult.ResultValue is string resultString && double.TryParse(resultString, out double resultDouble))
                    {
                        compileResult = new CompileResult((resultDouble * -1).ToString(), compileResult.DataType);
                    }
                    else
                    {
                        compileResult = new CompileResult(eErrorType.Value);
                    }
                }
            }
        private CompileResult CompileSingleCell(ExcelDataProvider.IRangeInfo result)
        {
            var cell = result.FirstOrDefault();

            if (cell == null)
            {
                return(CompileResult.Empty);
            }
            var factory       = new CompileResultFactory();
            var compileResult = factory.Create(cell.Value);

            if (_negate && compileResult.IsNumeric)
            {
                compileResult = new CompileResult(compileResult.ResultNumeric * -1, compileResult.DataType);
            }
            compileResult.IsHiddenCell = cell.IsHiddenRow;
            return(compileResult);
        }