Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Prüfen ob Excel Worksheet vorhanden ist (https://www.delphipraxis.net/87059-pruefen-ob-excel-worksheet-vorhanden-ist.html)

DelphiManiac 22. Feb 2007 19:10


Prüfen ob Excel Worksheet vorhanden ist
 
Hallo,

ich habe folgendes Problem:

Ich will eine Exceldatei in Delphi öffnen um mir bestimmte Werte aus den Zellen eines Worksheets zu holen.
Leider weiß ich nicht, wie ich am besten Prüfen kann, ob ich die richtige Exceldatei geöffnet habe.

D.h. ich würde gerne prüfen, ob das Worksheet 'Übergabedaten' vorhanden ist.
Und dann die Werte aus den Zellen lesen.
Wisst ihr wie ich das am Besten machen kann.

Danke euch!!

MagicAndre1981 23. Feb 2007 06:43

Re: Prüfen ob Excel Worksheet vorhanden ist
 
Versuch doch einfach ein Excel.Application Object zu erzeugen, wenn es klappt hast du Exel instaliert, sonst bekommst du einen Fehler.

Delphi-Quellcode:
try
  Excel := CreateOleObject('Excel.Application');
except
  ShowMessage('Excel konnte nicht gestartet werden !');
  Exit;
end;
:gruebel:

ste_ett 23. Feb 2007 07:18

Re: Prüfen ob Excel Worksheet vorhanden ist
 
Hier, ein Code-Beispiel, um per Registrierung zu prüfen. :)

DelphiManiac 23. Feb 2007 07:59

Re: Prüfen ob Excel Worksheet vorhanden ist
 
Hi, ja

so mache ich das ja schon, aber ich suche die Möglichkeit herauszufinden, ob es ein Sheet in einem Excelfile gibt..

Delphi-Quellcode:
begin
  try
    // Ole Objekt erstellen und öffnen
    Excel:=CreateOleObject('Excel.Application');
    // Excel Fenster unsichtbar machen
    Excel.Visible:=false;
  //  Excel.SaveData := False;
    Excel.Workbooks.Open(ExcelName);
    Excel.activesheet.name := 'Übergabedaten'; // wie kann ich hier testen, ob es das Sheet wirklich gibt in der Exceldatei???
    Excel.DisplayAlerts:=false;

  //  ShowMessage(Excel.Cells[2,2].Value);
  except
    Exception.Create('Falsche oder fehlerhafte Datei ausgewählt');
  end;
Gruß
DelphiManiac

Chemiker 24. Feb 2007 02:58

Re: Prüfen ob Excel Worksheet vorhanden ist
 
Hallo DelphiManiac,

es ist möglich die Tabellenblätter zu zählen und anschliessend mit den Tabellen-Namen zu vergleichen.


Delphi-Quellcode:
var AnzahlBlaetter: integer;
    BlattName: string;
    z: integer;
begin
  try
    // Ole Objekt erstellen und öffnen
    Excel:=CreateOleObject('Excel.Application');
    // Excel Fenster unsichtbar machen
    Excel.Visible:=false;
  //  Excel.SaveData := False;
    Excel.Workbooks.Open(ExcelName);
    AnzahlBlaetter:= Excel.Worksheets.Count;  // Anzahl Blätter
    for z:= 1 to AnzahlBlaetter do
    begin
      BlattName:= Excel.Worksheets[z].Name;  // Alle Tablellenblätter durchlaufen
      if BlattName = 'ÜbergabeDaten' then
      // alles ok
    end;

    Excel.activesheet.name := 'Übergabedaten'; // wie kann ich hier testen, ob es das Sheet wirklich gibt in der Exceldatei??? 
    Excel.DisplayAlerts:=false;

  //  ShowMessage(Excel.Cells[2,2].Value);
  except
    Exception.Create('Falsche oder fehlerhafte Datei ausgewählt');
  end;

So müsste es gehen.


Bis bald Chemiker

DelphiManiac 4. Mär 2007 13:18

Re: Prüfen ob Excel Worksheet vorhanden ist
 
Danke Chemiker,

denke so könnte ich es machen, habe bis jetzt einfach geprüft ob in der Zelle des ausgewählten Blattes ein bestimmtes Wort
steht. Aber deine Methode ist glaube ich eleganter und trifft genau auf meine Problematik zu.

Danke dir nochmal, werde die Sheets so durchlaufen, wie du es vorgeschlagen hast!

Gruß
DelphiManiac


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:47 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