Habe es gelöst!
Folgende Hilfsfunktion probiert den Wert in ein Float zu konvertieren.
Im Erfolgsfall wird dieser zurückgegeben, andernfalls der ursprüngliche String. Verwendet wird TryStrToFloat aus SysUtils.
Delphi-Quellcode:
function StringToVariant(const SourceString : string) : Variant;
var
FloatValue : Extended;
begin
if TryStrToFloat(SourceString, FloatValue) then
Result := FloatValue
else
Result := SourceString;
end;
Das Ergebnis der Funkion weist man dann dem entsprechenden Eintrag des OleVariant-Arrays zu, welches die Exceldaten enthält:
Delphi-Quellcode:
for i := 1 to spalten_liste.Count do
begin
Value := StringToVariant(StringGrid.Cells[i, j]);
arr[j,i] := Value;
end;
Viele Grüße,
Sascha.