AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi und Excel

Ein Thema von juelin · begonnen am 9. Mai 2006 · letzter Beitrag vom 13. Mai 2006
Antwort Antwort
juelin

Registriert seit: 9. Mai 2006
Ort: Mannheim
124 Beiträge
 
Delphi XE5 Professional
 
#1

Delphi und Excel

  Alt 9. Mai 2006, 10:38
Hallo zusammen,

vielleicht kann mir jemand helfen.

Ich möchte in Delphi 7 eine Excelfile lesen.
Das klappt auch mit folgendem Code:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
  var exzeile: integer;
  var exspalte: integer;
  var excol: integer;
  var exrow: integer;
  var exinp: string;
begin
  Label4.Caption:='Open EXCEL';
  Label4.Refresh;
  Label5.Caption:='';
  Label5.Refresh;
  ausfall:=0;
  try
    Excel:=CreateOleObject('Excel.Application');
  except
    ausfall:=1;
    Label5.Caption:='Fehler EXCEL';
    Label5.Refresh;
  end;
  if ausfall = 0 then
  begin
    Excel.Visible:=False;
    Excel.WorkBooks.Open('C:IMTGERNord-LBexamplesNLB_MR_03_2006DatendatenneuNLB_MR_03_2006_Anzahl_Clients_neu.XLS');
    Excel.Sheets['Clients'].Activate;
    Label5.Caption:=IntToStr(excol)+'/'+IntToStr(exrow);
    Label5.Refresh;
    exzeile:=1;
    exspalte:=1;
    while exzeile > 0 do
    begin
      while exzeile > 0 do
      begin
        exinp:=Excel.Cells[exzeile, exspalte].Value;
        if ((exinp = '') and (exspalte = 2)) then
        begin
          Label5.Caption:='Zeile/Spalte:'+IntToStr(exzeile)+'/'+IntToStr(exspalte)+' <'+exinp+'>';
          Label5.Refresh;
          exspalte:=exspalte + 1;
        end else begin
          if ((exinp = '') and (exspalte > 1)) then
          begin
            exspalte:=1;
            exzeile:=exzeile + 1;
          end else begin
            if ((exinp = '') and (exspalte = 1)) then
            begin
              exzeile:=0;
              exspalte:=0;
            end else begin
              Label5.Caption:='Zeile/Spalte:'+IntToStr(exzeile)+'/'+IntToStr(exspalte)+' <'+exinp+'>';
              Label5.Refresh;
              exspalte:=exspalte + 1;
            end;
          end;
        end;
      end;
    end;
    Excel.Workbooks.Close;
    Excel.Quit;
    Excel:=Unassigned;
  end;
end;
Nun meine Frage:
wie kann ich den Celltyp auslesen (Numeric, Text, Date, usw)
und wie kann ich festellen wieviele Rows und Columns im Sheet sind?

Vielleich kann mir jemand ein beispiel schicken

Danke und Gruss
Jürgen

[edit=sakura] [delphi]_tags, Mail besser via PM austauschen Mfg, sakura[/edit]
Jürgen Linder
  Mit Zitat antworten Zitat
Helld_River

Registriert seit: 2. Jan 2003
Ort: Hürth
136 Beiträge
 
Delphi 2010 Professional
 
#2

Re: Delphi und Excel

  Alt 9. Mai 2006, 11:15
Hi !
Thema: Celltyp
Excel hat eine Makrofunktion, mit der du Makros aufzeichnen kannst. Nehme also eine Makro auf, bei welchem du den Datentyp der Zelle änderst. Dannach schaust du dir den VB-Code des Makros an und darin findest du die Zeile, in welcher auf den Datentyp zugegriffen wird. Der Bezeichner in Delphi ist analog.

Bei der Anzahl an Spalten und Zahlen habe ich bisher nichts rausgefunden. Ich probiere einfach aus, wann nur noch leere Zeilen und Spalten kommen, allerdings hab ich den Vorteil, dass ich bestimmen kann, dass die Daten in der ersten Zelle anfangen.

Hoffe, das hilft dir weiter.

Gruß, Helld
  Mit Zitat antworten Zitat
Igotcha

Registriert seit: 22. Dez 2003
544 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Delphi und Excel

  Alt 9. Mai 2006, 11:47
Zitat von Helld_River:
...Der Bezeichner in Delphi ist analog.
Vorsicht, ich habe ein deutsches D7 und wenn ich mit den Office-Komponenten auf Excel zugreife, funktionieren bei mir nur die englischen Namen der Funktionen.

Viele Grüße
Igotcha
  Mit Zitat antworten Zitat
Helld_River

Registriert seit: 2. Jan 2003
Ort: Hürth
136 Beiträge
 
Delphi 2010 Professional
 
#4

Re: Delphi und Excel

  Alt 13. Mai 2006, 15:33
HI !
Ich verstehe deine Aussage nicht so ganz, was willst du damit sagen ?
Ich meine, es ist egal, welche Version du von Delphi hast. Du greifst ja auf Excel zu, was ja nichts mit Delphi zu tun hat.

Gruß, Helld
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:28 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