Announcement

Collapse
No announcement yet.

Namen von Worksheets ermittlen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Namen von Worksheets ermittlen

    Wie kann ich die Bezeichnungen von Worksheets ermitteln ?
    Die Anzahl bekomme ich bereits heraus (Excel.ActiveWorkbook.Sheets.Count)

  • #2
    Hallo Sascha,<br>so könnte es klappen
    <pre>
    unit Unit1;

    interface

    uses
    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
    StdCtrls, Excel2000, OleServer;

    type
    TForm1 = class(TForm)
    WBook: TExcelWorkbook;
    Excel: TExcelApplication;
    lbSheetnames: TListBox;
    btnGet: TButton;
    procedure btnGetClick(Sender: TObject);
    private
    { Private-Deklarationen }
    FLCID : Integer;
    procedure RunExcel(Visible : Boolean);
    procedure CloseExcel;
    procedure GetSheetNames(Workbook : TExcelWorkBook; L : TStrings);
    public
    { Public-Deklarationen }
    end;

    var
    Form1: TForm1;

    implementation

    {$R *.DFM}

    procedure TForm1.btnGetClick(Sender: TObject);
    begin
    RunExcel(False);
    Try
    GetSheetNames(WBook,lbSheetnames.Items);
    Finally
    CloseExcel;
    end;
    end;

    procedure TForm1.CloseExcel;
    begin
    WBook.Disconnect;
    Excel.Quit;
    Excel.Disconnect;
    end;

    procedure TForm1.GetSheetNames(Workbook: TExcelWorkBook; L: TStrings);
    var
    iCnt : Integer;
    Sheet : _WorkSheet;
    begin
    L.Clear;
    For iCnt:=1 to WorkBook.Sheets.Count do
    begin
    Sheet:=WorkBook.Sheets.Item[iCnt] as _WorkSheet;
    L.Add(Sheet.Name);
    end;
    end;

    procedure TForm1.RunExcel(Visible: Boolean);
    begin
    FLCID:=GetUserDefaultLCID;
    Excel.Connect;
    Excel.Visible[FLCID] := Visible;
    Excel.UserControl := Visible;
    Excel.DisplayAlerts[FLCID]:=False;
    Excel.Workbooks.Add(EmptyParam,FLCID);
    WBook.ConnectTo(Excel.ActiveWorkbook);
    end;

    end.</pre&gt

    Comment

    Working...
    X