Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Excel auslesen (https://www.delphipraxis.net/13873-excel-auslesen.html)

Micha 5. Jan 2004 00:25

Re: Excel auslesen
 
Wollte bloß kurz bescheid sagen, dass es an einem anderen Rechner super klappt.

Dankeschööön.

rich123 8. Aug 2008 12:04

Re: Excel auslesen
 
Hallo,

Ich hoffe es antwortet mir noch wer auf diesen alten Post.

Und zwar verwende ich auch den Code, den toms geschrieben hat und der funktioniert auch.
Mein Problem ist es aber, dass ich nicht die Nummer der Tabelle eingeben will sondern den Tabellennamen selber. (Die Tabelle, von der ich auslese liegt bei verschiedenen exel files auf einer anderen Nummer)

Delphi-Quellcode:
      // erstes WorkSheet definieren
      WorkSheet := WorkBk.WorkSheets.Get_Item(1) as _WorkSheet;
Danke schonmal

rich123 8. Aug 2008 12:33

Re: Excel auslesen
 
habs selber herausgefunden, wen es interessiert:

Delphi-Quellcode:
WorkSheet := Workbk.sheets['Tabelle2'] as _WorkSheet;
Gruß

p80286 8. Aug 2008 12:38

Re: Excel auslesen
 
Hallo rich123,

ich bin mir da nicht ganz sicher, aber ich denke das sollte funktionieren. Soweit ich weiß kannst Du bei VBA über Namen oder Nummern zugreifen. Nur sieht das in der Hilfe ein wenig anders aus:

Zitat:

"ActiveSheet-Eigenschaft
Wenn ein Arbeitsblatt das aktive Blatt ist, können Sie sich mit der ActiveSheet-Eigenschaft darauf beziehen. Im folgenden Beispiel wird die Activate-Methode verwendet, um Sheet1 zu aktivieren, die Seitenausrichtung auf Querformat zu setzen und das Arbeitsblatt zu drucken.

Worksheets("Sheet1").Activate
ActiveSheet.PageSetup.Orientation = xlLandscape
ActiveSheet.PrintOut


Da war ich etwas langsam, dann noch eine Empfehlung hinterher:
nach Möglichkeit immer ein "activ..." definieren, da is die Chance sich zu verdaddeln nicht so groß, weil alle Zugriffe auf "activ...." erfolgen.

Gruß
K-H

rich123 12. Aug 2008 16:28

Re: Excel auslesen
 
Hallo zusammen,

Nochmals will ich was zu dem Code erfragen.

Delphi-Quellcode:
ShowMessage(Worksheet.Cells.Item[1, 1].Value);
Wäre es auch möglich statt der Zelle 1,1 einfach 1,B oder so anzugeben? (Also die Spaltenbezeichnung wie bei Excel)
Gibt es die Funtkion schon vorgefertigt oder müsste man sich die selber ausprogrammieren?

Danke für die Hilfe

Gruß

toms 12. Aug 2008 19:20

Re: Excel auslesen
 
Zitat:

Zitat von rich123
Wäre es auch möglich statt der Zelle 1,1 einfach 1,B oder so anzugeben? (Also die Spaltenbezeichnung wie bei Excel)

Ja, mit _WorkSheet.Range:

z.B
Delphi-Quellcode:
Worksheet.Range['B53','B53'].Value

Chemiker 12. Aug 2008 19:56

Re: Excel auslesen
 
Hallo,

ich würde nur statt ‚Value’ ‚Value2’ vorziehen, um Probleme mit deutschen Datumsformaten zu vermeiden.

Bis bald Chemiker

omata 12. Aug 2008 20:11

Re: Excel auslesen
 
Hier mal eine Skizze wie das geht...

Delphi-Quellcode:
Application:TExcelApplication;

var ActiveSheet:_WorkSheet;
 
ActiveSheet:=Application.ActiveSheet as _WorkSheet;

var Sheet:variant;
var Zelle, Value:string;

Sheet:=ActiveSheet;
Zelle:='A1';
Value:='Hello World';
Sheet.Range[Zelle].Value:=Value;

Chemiker 12. Aug 2008 20:38

Re: Excel auslesen
 
Hallo omata,

das dürfte aber nicht funktionieren, weil Range in Delphi im Gegensatz zu Excel 2 Parameter erwartet.

So müsste es gehen.
Delphi-Quellcode:
Sheet.Range[Zelle, EmptyParam].Value:=Value;
Oder direkt

Delphi-Quellcode:
Sheet.Range['A1',EmptyParam].Value:=Value;
Bis bald Chemiker

omata 12. Aug 2008 20:47

Re: Excel auslesen
 
Zitat:

Zitat von Chemiker
das dürfte aber nicht funktionieren, weil Range in Delphi im Gegensatz zu Excel 2 Parameter erwartet.

Meine Skizze ist aus einer eigenen Excelklasse, die auch so schon jahrelang funktioniert. Aber wenn du meinst...


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:34 Uhr.
Seite 2 von 3     12 3      

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