Einzelnen Beitrag anzeigen

Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.859 Beiträge
 
Delphi 11 Alexandria
 
#14

Re: Excel-Zeile auslesen / Datei-Pfad relativ !!!

  Alt 16. Aug 2007, 22:21
Hallo taktaky,

bis Du schon weitergekommen bei der Deiner Suche?
Wenn nicht, vielleicht hilft Dir diese Funktion weiter.
Um das ganze zu Testen muss Du noch die Komponente TOpenDialog auf das Form ablegen.


Delphi-Quellcode:
{******************************************************************************}
{* Funktion: ExcelDateiAussuchen()                                            *}
{* Autor   :                                                 *}
{* Ltz.Änd.: 21.01.2006                                                       *}
{* Beschreibung: *}
{* *}
{******************************************************************************}
function ExcelDateiAussuchen(const StandartDateiname:String;
                                                      Sender : TObject):string;
begin
  (Sender As TOpenDialog).Filter := 'EXCEL-Datei (*.xls)|*.xls';
  (Sender As TOpenDialog).DefaultExt := 'xls';
  (Sender As TOpenDialog).InitialDir := 'c:\';
  (Sender As TOpenDialog).FileName := StandartDateiname;
  if (Sender As TOpenDialog).Execute then
  begin
    Result := (Sender As TOpenDialog).filename;
  end;
end;
Dein Code:

Delphi-Quellcode:
uses ComObj,

procedure TForm1.Button1Click(Sender: TObject);
const
  xlCellTypeLastCell = $0000000B;
var
  XLApp, XLSheet: OLEVariant;
  LetzteSpalte, i: Integer;
  s: string;
begin
  // Excel starten
  try
    XLApp := CreateOleObject('Excel.Application');
  except
    ShowMessage('Fehler...');
    Exit;
  end;
  // Excel-Datei öffnen
  XLApp.Workbooks.Open(ExcelDateiAussuchen('test1.xls',OpenDialog1));// <------ geändert
  XLSheet := XLApp.Workbooks[1].WorkSheets[1];
  // Letzte Spalte ermitteln
  LetzteSpalte := XLSheet.Cells.SpecialCells(xlCellTypeLastCell, emptyParam).Column;
  s := '';
  // Zellen von Zeile 1 auslesen und in String s speichern
  for i := 1 to LetzteSpalte do
    s := s + XLSheet.Cells[1, i].Text;
  // String s anzeigen
  //ShowMessage(s);
  Edit1.Text:=s;
  // Excel beenden
  XLApp.Quit;
end;


Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat