Thema: Delphi Delphi und Excel

Einzelnen Beitrag anzeigen

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