Hi, ich will via
OLE eine ExcelDatei auslesen. Öffnen Schließen usw geht auch tadellos. Nun will ich verschiedene Exceldateien einlesen wo die Spalten bzw Felder unterschiedlich sein können. Dazu versuche ich über die erste Zeile zu prüfen wann ein Feld leer ist (bei Listen ist das meist so).
Delphi-Quellcode:
j:=1;
repeat
if (Excel.Cells[1, j].Value<>'') then begin
s_tmp:=Excel.Cells[1, j].Value;
Memo1.Lines.Add('Line: '+IntToStr(j)+' - '+s_tmp);
end;
Inc(j);
until (Excel.Cells[1, j].Value='');
Geht tatellos. In der Länge würde ich dann prüfen ob alle Felder leer sind, wenn ja dann ist die Exceldatei am Ende. Nun ist es aber so das meine Variable s_tmp vom Typ Variant ist, da ich dachte es nimmt alles auf. Leider muckt er bei Zahlenfeldern rum:
Zitat:
Variante des Typs (String) konnte nicht in Typ (Double) konvertiert werden.
Ja aber wie soll ich denn beim einlesen wissen was das für ein Feld ist? Ich dachte er liest immer String aus. Wie kann man das denn wieder anstellen?