Thema: Delphi Excel Ole Object

Einzelnen Beitrag anzeigen

afamaus

Registriert seit: 15. Jun 2010
6 Beiträge
 
Delphi 2 Desktop
 
#1

Excel Ole Object

  Alt 15. Jun 2010, 15:55
Hallo Ich bin neu hier im Forum.
Ich habe ein kleines Programm für meinen Arbeitskollegen geschrieben um Daten in einer Excel Tabelle zu sortieren und in einem neuen Sheet abzulegen. Das geht auch alles super, mein problem ist nur das ich nicht rausbekommen habe wie ich das alte sheet löschen kann, also das am Ende nur noch eine Tabelle mit den sortierten Daten in der xls datei ist. hier mal mein Quellcode

vielleicht hat ja einer ne Lösung für mich parat Gruß afamaus

Delphi-Quellcode:
var
  Form1: TForm1;
  Workbook,Filename, Excel: OleVariant;
    a,i,y:integer;

implementation

{$R *.dfm}

procedure TForm1.Beenden1Click(Sender: TObject);
begin
close;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
//öffnen der Excel Datei
OpenDialog1:=TOpenDialog.Create(Self);
try
OpenDialog1.InitialDir:=ExtractFilePath(Application.ExeName);
OpenDialog1.Filter:='*.xlsm';
if OpenDialog1.execute then begin
try

//Excel.Visible:=true;
Filename:=OpenDialog1.Filename;
Workbook:=Excel.Workbooks.open(filename,emptyparam);
Label2.Caption:=Opendialog1.Filename + ' wurde erfolgreich geladen';
except
end;
end
finally
openDialog1.free;
end;
end;


procedure TForm1.Button2Click(Sender: TObject);
begin
    l1.Visible:=true;
   //makro
    excel.sheets[2].cells[1,1].value:='Name';
    excel.sheets[2].cells[1,2].value:='Straße';
    excel.sheets[2].cells[1,3].value:='Postleitzahl';
    excel.sheets[2].cells[1,4].value:='Ort';
    excel.sheets[2].cells[1,5].value:='Telefon';
    excel.sheets[2].cells[1,6].value:='Einweisungen';
a:=13;
y := 2;
For i := 14 To 1500 do
begin
    excel.sheets[2].cells[y,1].value:=excel.sheets[1].cells[a,2].value; //Name
    excel.sheets[2].cells[y,2].value:=excel.sheets[1].cells[a + 1,2].value; //Ort
    excel.sheets[2].cells[y,3].value:=excel.sheets[1].cells[a + 2,2].value; //Straße
    excel.sheets[2].cells[y,4].value:=excel.sheets[1].cells[a,5].value; //Postleitzahl
    excel.sheets[2].cells[y,5].value:=excel.sheets[1].cells[a+2,12].value; //Telefon
    excel.sheets[2].cells[y,6].value:=excel.sheets[1].cells[a+3,12].value; //Einweiser
    a := a + 6 ;
    y:=y+1;
    End;
     l1.Visible:=false;
     excel.sheets[2].name:='SAP-Statistik';
     showmessage('Daten wurden ausgelesen und in SAP-Statistik.xls geschrieben und auf dem Desktop abgelegt');
//Makro ende

//speichern und schließen
Workbook.SaveAs('C:\Users\Hoffmann\Desktop\SAP_Statistik.xls',EmptyParam ,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,False,EmptyParam,EmptyParam,GetUserDefaultLCID);
Excel.Workbooks.close;
Excel.Quit;
Excel:=unassigned;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Excel:=CreateOleObject('Excel.Application');
end;

end.

Geändert von SirThornberry (16. Jun 2010 um 08:39 Uhr) Grund: Code-Tag durch Delphi-Tag ersetzt, Delphi als Sprache eingestellt
  Mit Zitat antworten Zitat