From c5c3755b64edf323db9b48478689924624b903ce Mon Sep 17 00:00:00 2001 From: wp_xxyyzz Date: Fri, 8 Apr 2022 17:18:11 +0000 Subject: [PATCH] fpspreadsheet: Handle numeric cells strings in TUPlusExprNode of the formula parser. git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@8247 8e941d3f-bd1b-0410-a28a-d453659cc2b4 --- components/fpspreadsheet/source/common/fpsexprparser.pas | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/components/fpspreadsheet/source/common/fpsexprparser.pas b/components/fpspreadsheet/source/common/fpsexprparser.pas index d0ea7fa22..f9c336a6d 100644 --- a/components/fpspreadsheet/source/common/fpsexprparser.pas +++ b/components/fpspreadsheet/source/common/fpsexprparser.pas @@ -3168,6 +3168,7 @@ end; procedure TsUPlusExprNode.GetNodeValue(out Result: TsExpressionResult); var cell: PCell; + val: Extended; begin Operand.GetNodeValue(Result); case Result.ResultType of @@ -3179,6 +3180,12 @@ begin if cell = nil then Result := FloatResult(0.0) else + if (cell^.ContentType = cctUTF8String) then begin + if TryStrToFloat(cell^.UTF8StringValue, val) then + Result := FloatResult(val) + else + Result := ErrorResult(errWrongType); + end else if cell^.ContentType = cctNumber then begin if (frac(cell^.NumberValue) = 0.0) and