Hallo
DP,
Ich betrete mal wieder Neuland, diesmal möchte ich den Inhalt einer Listview als *.xls abspeichern.
Ich nutze Codegear Delphi for Microsoft Windows 2007.
Folgende Komponenten befinden sich auf meinem Formular:
ExcelApp: TExcelApplication
ExcelOLEObject1: TExcelOLEObject
Erfassungsdaten: TExcelWorksheet
ExcelWorkbook1: TExcelWorkbook
Auto Connect ist FALSE
und ConnectKind ist: ckRunningOrNew
Bevor ich mich an die Listview wage, wollte ich zunächst mal ganz simpel ein Wort in Zeile1, Spalte1 einfügen. Das ist der Code dafür:
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var
flcid:integer;
Filename:String;
begin
SaveDialog.Execute;
case SaveDialog.FilterIndex of
1: Filename := ChangeFileExt(SaveDialog.FileName,'.xls');
2: Filename := ChangeFileExt(SaveDialog.FileName,'.xls');
end;
if Filename <> '' then
begin
try
flcid:=GetUserDefaultLCID;
ExcelApp.Connect;
ExcelApp.Visible[flcid]:=true;
ExcelApp.UserControl:=true;
Except
//fehler ausgeben
end;
CreateFile(@Filename[1], 0, FILE_SHARE_WRITE, nil, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
ExcelWorkbook1.ConnectTo(ExcelApp.Workbooks.Open(filename, False,
False, EmptyParam, '', False, False, EmptyParam, EmptyParam, false, false,
EmptyParam, EmptyParam, EmptyParam, false, 0));
Erfassungsdaten.ConnectTo(ExcelWorkbook1.Sheets.Item[1] as ExcelWorkSheet);
ExcelApp.Cells[1, 1] := 'TESTEINTRAG';
end;
//Aufräumen
ExcelApp.Quit;
end;
Das funktioniert nicht ganz denn es erscheint ein Fehler:
[DCC Fehler] Unit1.pas(220): E2149 Klasse besitzt keine Standardeigenschaft
Bei der Zeile: ExcelApp.Cells[1, 1] := 'TESTEINTRAG';
Gemäß Suchfunktion wird aber genau diese Zeile für das Eintragen in einem Excelsheet genutut. Wo liegt denn da der Fehler?