Hallo zusammen,
ich habe viel im Internet nach einer Guten Lösung, um auf Excel zuzugreifen. Also im Hintergrund ein
DB Query in Excel zu exportieren. Ich bin dann hierbei gelandet. Nutze Delphi 2006.
Delphi-Quellcode:
i:=1;
//Prüfen ob eine Aktive Instanz vorhanden ist
try
ExcelApp := GetActiveOleObject('Excel.Application');
except
try
//Wenn nicht eine neue erstellen
ExcelApp := CreateOleObject('Excel.Application');
except
//Bei Fehler exit
ShowMessage('Excel - Modul kann nicht gestartet werden!');
Exit;
end;
end;
//Öffnen der Exceldatei
ExcelApp.Workbooks.Open('c:\test.xls');
//Ende der Datei ermitteln
repeat
i:=i+1;
until ExcelApp.Cells[i, 1].Value='';
//die Daten anhängen
ORowCount:=i;
ExcelApp.Cells[ORowCount, 2].value:='1';
ExcelApp.Cells[ORowCount, 3].Value:='Test';
// Workbook Speichern, Schließen und aus dem Speicher entfernen
ExcelApp.ActiveWorkBook.Save;
ExcelApp.ActiveWorkBook.Close;
ExcelApp.Quit;
ExcelApp := Unassigned;
Das Beste ist, das er die 2 Testdaten in Excel schreibt. Finde ich schonmal sehr gut aber leider bekomme ich eine
Exception der Klasse EoleSysError "Vorgang nicht verfügbar.". Wenn ich dann das Programm anhanlte hält Delphi bei "ExcelApp := GetActiveOleObject('Excel.Application');".
Könnt ihr mir erklären, wieso es dazu kommt, die Daten aber trotzdem geschrieben werden?
MFG
Christian Dannenberg