Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Excel Arbeiten in verschiedenen Proceduren (https://www.delphipraxis.net/141563-excel-arbeiten-verschiedenen-proceduren.html)

RoMe87 11. Okt 2009 13:01


Excel Arbeiten in verschiedenen Proceduren
 
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! :stupid:

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.

hugo1990 11. Okt 2009 13:50

Re: Excel Arbeiten in verschiedenen Proceduren
 
Deklarier Excel als globale Variable, dann brauchst du auch nur in der Start_Prog das OleObject zu initalisieren und dann sollte dein Vorhaben auch funktionieren.

RoMe87 11. Okt 2009 17:34

Re: Excel Arbeiten in verschiedenen Proceduren
 
Danke, das wars! Jetzt läufts.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:49 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz