Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Excel-Zeile auslesen / Datei-Pfad relativ !!! (https://www.delphipraxis.net/97785-excel-zeile-auslesen-datei-pfad-relativ.html)

taktaky 16. Aug 2007 11:37


Excel-Zeile auslesen / Datei-Pfad relativ !!!
 
mit dem Code klann man den Inhalt einer Excel-Zeile auslesen. Aber was soll ich ändern,
damit den datei Pfad aus als relativ eintragen kann. In dem Code wird nur absolute Pfad akzeptiert !!!

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('C:\test1.xls'); // pafd nur als absolut !!!!!!!!!!!!!!!!
  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;
Gruß

mkinzler 16. Aug 2007 11:42

Re: Excel-Zeile auslesen / Datei-Pfad relativ !!!
 
Wandle doch den relativen in einen absoluten
Delphi-Quellcode:
Pfad := ExtractFilePath( Application.Exename) + <realtiver Pfad>;

taktaky 16. Aug 2007 12:31

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

Zitat von mkinzler
Wandle doch den relativen in einen absoluten
Delphi-Quellcode:
Pfad := ExtractFilePath( Application.Exename) + <realtiver Pfad>;

Hallo,

kannst Du den von Dir gegebenen Code in von mir gegebenen Delphi Code ersetzen?

Gruß

hoika 16. Aug 2007 12:35

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

wie sollen wir das denn machen,
ohne zu wissen, wie dein relativer Pfad aussieht ?

Von wo aus relativ ?
Von deiner Exe?

Dann sieht oben.


Heiko

mkinzler 16. Aug 2007 12:35

Re: Excel-Zeile auslesen / Datei-Pfad relativ !!!
 
Delphi-Quellcode:
XLApp.Workbooks.Open(Pfad);

taktaky 16. Aug 2007 13:34

Re: Excel-Zeile auslesen / Datei-Pfad relativ !!!
 
Danke schön, nun funktioniert

Das war mit Excel. Ich weiss nicht ob ich das Script auch für word, txt, html verwenden kann?

Gruß

mkinzler 16. Aug 2007 13:42

Re: Excel-Zeile auslesen / Datei-Pfad relativ !!!
 
Welches Skript?

taktaky 16. Aug 2007 13:53

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

Zitat von mkinzler
Welches Skript?

ich meine der Code ;)

Chemiker 16. Aug 2007 13:55

Re: Excel-Zeile auslesen / Datei-Pfad relativ !!!
 
Hallo taktaky,

warum setzt Du nicht einfach die Komponente TObenDialog ein?

Damit kann man sich doch jeden Path aussuchen.

Bis bald Chemiker

mkinzler 16. Aug 2007 13:56

Re: Excel-Zeile auslesen / Datei-Pfad relativ !!!
 
Der Code zur ermittlung des Pfades der Exe: ja; dein Code nicht.

taktaky 16. Aug 2007 14:22

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

Zitat von Chemiker
Hallo taktaky,

warum setzt Du nicht einfach die Komponente TObenDialog ein?

Damit kann man sich doch jeden Path aussuchen.

Bis bald Chemiker

Das wäre noch besser.
gibt es ein Beispiel davon?

Gruß

mkinzler 16. Aug 2007 14:43

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

warum setzt Du nicht einfach die Komponente TObenDialog ein?
Oder wahlweise auch TUntenDialog :stupid:
Aber helfen würde eher ein TOpenDialog. Diese Komponente kapselt den Dateiauswahldialog.

Man ruft ihn mit .Execute auf. nach Schließen des Dialogs kann man die ausgewählte Datei unter .FileName auslesen. Bei Muliselect in .Files.

taktaky 16. Aug 2007 17:14

Re: Excel-Zeile auslesen / Datei-Pfad relativ !!!
 
ich würde dann über google nach dem Befehl suchen.

Gruß

Chemiker 16. Aug 2007 21:21

Re: Excel-Zeile auslesen / Datei-Pfad relativ !!!
 
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

taktaky 17. Aug 2007 16:53

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

ja mit Excel Sachen ist schon erleidigt :)
nun möchte ich einen Code, der für alle Anwendungen gilt, wie MS Word, .txt Dateien, html.


Gruß


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