I did it in:
procedure TsWorksheet.WriteCellValueAsString(ACell: PCell; AValue: String; const AFormatSettings: TFormatSettings);
//...
// Check for a date/time value:
// Must be after float detection because StrToDateTime will accept a string
// "1" as a valid date/time.
// ^after this comment, from line ~#5209
I used trunk version 6568 from lazarus-ccr (today ~12:00 O'Clock. )
It works.
But I can not say something about side effects because I don't use this component. Today, I took closer look to this component, because I am thinking to use it. Maybe I take KGrid and do calculations myself.
There is second issue. I explain it with example.
When you have a formula in a3 like this:
=a1+a2
And the cells a1 have the value 1 and a2 2 then the result is 3 and that is right.
Now when you change the value a1 to some string like this 'hello' then the result of formula 2, because fpspreadsheet calculates the string cells as 0.
That is wrong. It should something like "NaN", "Not a Number" or something like this.
The user have to see that something is wrong with entries and correct it.