Es scheint nicht an den Umlauten zu liegen. Er mag offensichtlich keine Strings. Ich habe jetzt mal etwas experimentiert.
Code: Alles auswählen
var App_Excel : OleVariant;
row, col : Integer;
num : Currency;
s : String;
begin
app_excel := CreateOleObject('Excel.Application');
app_excel.visible := true;
app_excel.workbooks.add;
app_excel.workbooks[1].sheets[1].name := 'Uebersicht';
num := 12.13;
s := 'ich werd wahnsinnig';
app_excel.workbooks[1].sheets[1].cells[1, 1].VALUE := 'TEST';
app_excel.workbooks[1].sheets[1].cells[1, 2] := num;
app_excel.workbooks[1].sheets[1].cells[1, 3] := ''''+s;
app_excel.workbooks[1].sheets[1].cells[1, 4].Value := ''''+s;
app_excel.workbooks[1].sheets[1].cells[1, 5] := 'manmanman';
Die Zellen 1,2 und 5 werden übernommen und im Sheet angezeigt. Die Zellen bei denen ich s übergeben will bleiben leer. Habe auch mal mit AnsiString experimentiert, das führte dann manchmal zu Speicherüberläufen

Die Hochkommas kann man auch entfernen, das ändert nicht. Auch nicht ob man VALUE oder nicht nutzt.
Da ich Text übergebe ist das ganz schlecht so
Ich habe mir aber jetzt mal das FpSpreadsheet runtergeladen. Ich sehe das doch richtig, dass ich damit auch Excelfiles generieren kann. Das würde mir nämlich auch schon genügen. Ist zwar nicht ganz so komfortabel als wenn das Excel direkt aufgeht, aber immer noch besser, als hier ewig nach dem Fehler zu suchen, denn darum scheint es sich in der Tat zu handeln.