Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Excel öffnen über Button in Delphi+ Vorbelegen mit xls-Datei (https://www.delphipraxis.net/81977-excel-oeffnen-ueber-button-delphi-vorbelegen-mit-xls-datei.html)

Darkchild 6. Dez 2006 07:02


Excel öffnen über Button in Delphi+ Vorbelegen mit xls-Datei
 
Morgen @all,

folgendes kleines Problem:
Ich habe in meiner Anwendung die Möglichkeit den Inhalt des Grids, ob gefiltert oder nicht, per Knopfdruck nach Excel zu exportieren.
Dabei öffnet sich dann der Save-Dialog und man kann sich den Speicherplatz aussuchen und am Ende liegt dort eine xls-Datei mit dem Exportierten Inhalt.
Exportiert wird von mir über eine Funktion die das cxdbGrid mitliefert und zwar folgendermaßen:

Delphi-Quellcode:
procedure Tfrmzeiterfassunguebersicht.cxbtnexcelexportClick(Sender: TObject);
begin
if SaveDialog1.Execute then
ExportGrid4ToExcel(savedialog1.filename,cxgridzeiterfassungansicht,True,True,False,'xls');
end;
So, jetzt würde ich aber noch gerne einen Button haben mit dem ich dann, bei Bedarf, Excel öffnen kann und gleichzeitig die zuvor gespeicherte (Exportierte) Datei dabei öffne und Anzeigen lasse.
Mein Problem jetzt ist das ich garnicht weis wie ich das machen soll und welche Elemente ich benötige, so wie ich das in der Hilfe verstanden habe brauche ich eine ExcelOLEObjekt, aber wenn ich das einbinde habe ich keinen plan was ich machen muss um Excel zu öffnen, genauso wenig weis ich wie ich dabei das Excel Dokument öffne und wem ich den Pfad dazu übergeben muss.

Kann mir dabei evt. jemand helfen ?

Gruss
Darkchild

dfried 6. Dez 2006 07:13

Re: Excel öffnen über Button in Delphi+ Vorbelegen mit xls-D
 
Zitat:

Zitat von Darkchild
so wie ich das in der Hilfe verstanden habe brauche ich eine ExcelOLEObjekt, aber wenn ich das einbinde habe ich keinen plan was ich machen muss um Excel zu öffnen, genauso wenig weis ich wie ich dabei das Excel Dokument öffne und wem ich den Pfad dazu übergeben muss.

Also ich mach das immer über Shellexecute. Der folgenden Prozedur übergibst du deinen Excel-Dateinamen (inkl. Pfad) und das Betriebssystemmacht für die die "korrekte" Anwendung auf.

Delphi-Quellcode:
procedure TForm1.OpenSelectedFile(FName : string);
var
  p : array[0..1024] of char;
begin
  StrPCopy(p, FName);
  ShellExecute(Application.Handle, 'open', p, nil, nil, SW_SHOW);
end;

Mackhack 6. Dez 2006 07:15

Re: Excel öffnen über Button in Delphi+ Vorbelegen mit xls-D
 
Vlt. hilft dir das hier weiter:

Excel Tabelle oeffnen

Darkchild 6. Dez 2006 07:15

Re: Excel öffnen über Button in Delphi+ Vorbelegen mit xls-D
 
@dfried
Muss ich dafür noch zusätzlich eines der Delphi-Elemente wie z.B. ExcelOLEObjekt oder so benutzen oder kann ich dann darauf verzichten ?

Oder muss ich noch was in die Uses einbinden ?
Denn ansonsten kennt der den ShellExcecute-Befehl nicht !

Gruss
Darkchild

Darkchild 6. Dez 2006 08:23

Re: Excel öffnen über Button in Delphi+ Vorbelegen mit xls-D
 
Also mir geht es nicht darum Excel in Delphi Anzeigen zulassen, sondern ich möchte per klick auf einen Button der in meiner Delphi Anwendung liegt, Excel aufrufen und öffnen(gemeint ist aber die tatsächliche Excel Anwendung).

Gruss
Darkchild

Lun 6. Dez 2006 08:24

Re: Excel öffnen über Button in Delphi+ Vorbelegen mit xls-D
 
hi dark,

versuche es mal mit:

Delphi-Quellcode:
uses ShellApi
:zwinker:

greetz Lun

P.S: Mit ShellExecute öffnest du Excel und lässt es anzeigen, also genau das was du möchtest.

dfried 6. Dez 2006 08:26

Re: Excel öffnen über Button in Delphi+ Vorbelegen mit xls-D
 
Lun hat die Antwort zwar schon gegeben, aber zur Vervollständigung: du brauchst ansonten keine Komponenten oder irgendwas auf dein Formular zu ziehen und Excel geht auch nicht in deiner Applikation auf. Im Prinzip verhält sich das ganze so, wie wenn du im Explorer einen Doppelklick auf die Excel-Datei machen würdest.

Darkchild 6. Dez 2006 08:31

Re: Excel öffnen über Button in Delphi+ Vorbelegen mit xls-D
 
@Lun

Danke, genau das war es was mir gefehlt hat, klappt jetzt alles so wie es soll.

@dfried
Auch Dir danke.

Ihr zwei habt mir echt weitergeholfen. :thumb:


Gruss
Darkchild :cheers: :coder:

Lun 6. Dez 2006 09:03

Re: Excel öffnen über Button in Delphi+ Vorbelegen mit xls-D
 
Hi @ll,

habe noch eine kleine Anmerkung zum ShellExecute Befehl:

Delphi-Quellcode:
ShellExecute(Application.Handle, 'open', p, nil, nil, SW_SHOW);
Mit dem Power Point Viewer 2003 hatte ich vor kurzem das Problem das dieser nicht öffnen wollte,
der Grund dafür war, das für den Dateityp von Microsoft nur der Wert Show eingetragen war und nicht open.

Gelöst habe ich das Problem, in dem ich den wert open auf nil gesetzt habe, dadurch wird der Standard Befehl
für den Dateitypen aufgerufen der in den meisten Fällen anzeigen oder eben öffnen ist.
Es bleibt dir aber überlassen welchen Wert du da setzt.

greetz Lun


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