Einzelnen Beitrag anzeigen

RoMe87

Registriert seit: 11. Okt 2009
Ort: Mannheim
8 Beiträge
 
Delphi 7 Personal
 
#1

Excel Arbeiten in verschiedenen Proceduren

  Alt 11. Okt 2009, 14:01
Hallo!
Ich bin seit gut einer Woche ein angehender Delphi-Programmierer und versuche mich an einem eispielprogramm, mit dem ich versuchen will, Excel durch ein Delphi-Programm fernzusteuern.
Folgendes Problem:
Ich will über mehrere Prozeduren hinweg auf das selbe sheet zuzugreifen, was mir nicht gelingt. In diesem eispiel will ich bei Start des Programms eine neues Workbook mit einem Sheet namens 'DP Sheet' erstellen, wenn ich auf dem Button klicke sollen Werte eingetragen werden und bei Schließung des Programms soll die Datei in eine vordefinierte Datei gespeichert werden. Das ist alles ein wenig sinnlos, ich weiß, aber es ist ja auch nur ein Test, um mein Wissen zu erweitern und mich auf die ultimative Aufgabe vorzuereiten . Wenn ich alle Anweisungen in einer Prozedur schreien würde, klappt es. So, wie das Programm unten ausgeführt ist, klappt es nicht. Bitte um Hilfe!

Delphi-Quellcode:
unit Test1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComObj, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure ExcelFuellen(Sender: TObject);
    procedure Start_Prog(Sender: TObject);
    procedure Exit_Prog(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation
  procedure TForm1.Start_Prog(Sender: TObject);
  var
    Excel : Variant;
  begin
    Excel:= CreateOleObject('Excel.Application');
    excel.Application.SheetsInNewWorkBook := 1;
    Excel.Workbooks.Add;
    Excel.Sheets[1].Name := 'DP Sheet';
    excel.visible := true;
  end;


  Procedure TForm1.ExcelFuellen(Sender: TObject);
  var
    Excel : Variant;
    row, column: Integer;
  begin
    Excel:= CreateOleObject('Excel.Application');
    row := 1;
    column := 2;
    Excel.Sheets['DP Sheet'].Cells[row,column].Value := 'Hallo';
    Excel.Sheets['DP Sheet'].Cells[1,3].value := 5.23;
  end;


procedure TForm1.Exit_Prog(Sender: TObject; var Action: TCloseAction);
  var
    Excel : Variant;
  begin
    Excel:= CreateOleObject('Excel.Application');
    Excel.ActiveWorkbook.SaveAs('D:\Excel_Ablage\Test1.xls');
    Excel.Quit;
    Excel := Unassigned;
  end;
   {$R *.dfm}
end.
  Mit Zitat antworten Zitat