Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Beim Öffnen eine Excel Vorlage Dateiname vorgeben (https://www.delphipraxis.net/182712-beim-oeffnen-eine-excel-vorlage-dateiname-vorgeben.html)

norwegen60 12. Nov 2014 16:40

Beim Öffnen eine Excel Vorlage Dateiname vorgeben
 
Hallo zusammen,

ich öffne mit folgenden Code eine Excel-Vorlage
Delphi-Quellcode:
var
  ExcelApplication1 : TExcelApplication;
  WorkSheet: _WorkSheet;
begin
  ExcelApplication1 := TExcelApplication.Create(Application);
  ExcelApplication1.Connect;
  ExcelApplication1.Visible[0]:=True;
  ExcelApplication1.Caption:='excel Application';
  ExcelApplication1.Workbooks._Open('Test.xlt',Null,Null, Null,Null,Null,Null,Null,Null,True,Null,Null,Null, 0);
  WorkSheet := ExcelApplication1.WorkSheets.Item['Certificate'] as _WorkSheet;
  WorkSheet.Activate(0);
 
  //Excelfelder beschreiben
  ....
Das funktioniert so weit auch.

Folgende Fragen:
  1. Was muss ich tun, damit nicht das Formular sondern wie bei Doppelklick auf XLT im Explorer üblich ein Test1.xls geöffnet wird?
  2. Wie kann ich für das Speichern gleich ein Name und Verzeichnis vorschlagen ohne das Dokument selber zu speichern?

Eine Variante wäre sicherlich per VBA im Excel-Format das Speichern zu beeinflussen. Universeller für mich wäre es, es schon aus Delphi zu steuern.

Vielen Dank
Gerd

Chemiker 12. Nov 2014 20:41

AW: Beim Öffnen eine Excel Vorlage Dateiname vorgeben
 
Hallo norwegen60,

unter Delphi mit OpenDialog / SaveDialog den Dateiname speichern oder laden und dann als Variable in [ExcelApplication1.Workbooks._Open(DateiName, Null…] setzen. Im Filter kann man die Dateinameendung setzen und unter FileName den Dateiname vorgeben.

Bis bald Chemiker

Sir Rufo 12. Nov 2014 20:57

AW: Beim Öffnen eine Excel Vorlage Dateiname vorgeben
 
Anhand der Erweiterung wird erkannt, ob es sich um ein Dokument oder eine Vorlage handelt. Dabei wertet Excel selber diese Erweiterung nicht aus um diese als Vorlage (mach eine neues Dokument daraus) oder als Dokument zu öffnen, sondern in der Verknüpfung mit der Endung wird Excel mit anderen Parametern gestartet.

Blablabla ...

Egal was du da hast (.xls, .xlt), wenn du es als Dokument bearbeiten möchtest, dann
Delphi-Quellcode:
Open
nehmen und wenn das als Vorlage benutzt werden soll dann einfach statt
Delphi-Quellcode:
Open
Delphi-Quellcode:
Add
;)

norwegen60 12. Nov 2014 23:24

AW: Beim Öffnen eine Excel Vorlage Dateiname vorgeben
 
Hallo,

Zitat:

Sir Rufo: ... dann einfach statt Open Add
Unterschied zwischen XLS und XLT war bekannt, aber dass man mit Workbooks.Add öffnen muss nicht. Das klappt jetzt wie gewünscht. Danke.

Zitat:

Chemiker: ... als Variable in [ExcelApplication1.Workbooks._Open(DateiName, Null…] ...
Mit dieser Antwort komm ich nicht ganz klar denn mit _Open öffne ich ja das Dokument.
Ich weiß den neuen Namen und Pfad den ich vorgeben will. Nach dem Tip von Sir Rufo wird das neue Dokument als Test1.xls geöffnet. Jetzt, wo es offen ist, will ich den Namen und den Pfad auf einen anderen Namen vorbelegen, so dass dieser vorgegeben wird, wenn der Anwender in Excel "Speichern" oder "Speichern unter" aufruft. Geht das?

Grüße
Gerd

Sir Rufo 13. Nov 2014 07:20

AW: Beim Öffnen eine Excel Vorlage Dateiname vorgeben
 
Der Unterschied ist, das es keinen Unterschied gibt. Die unterschiedliche Dateiendung wurde eingeführt, damit unterschiedliche Aktionen (beim DoppelKlick im Explorer) an die Dateiendung verknüpft werden können.

Dateiname vorbelegen:

Nimm die Vorlagendatei, kopiere diese an die gewünschte Stelle mit der Endung ".xls" (eigentlich egal, aber das Klickverhalten :)) und öffne diese dann mit
Delphi-Quellcode:
Open
.

norwegen60 13. Nov 2014 18:41

AW: Beim Öffnen eine Excel Vorlage Dateiname vorgeben
 
Hallo,

Zitat:

Zitat von Sir Rufo (Beitrag 1279571)
Der Unterschied ist, das es keinen Unterschied gibt.

So gesehen hast du natürlich recht.

Zitat:

Zitat von Sir Rufo (Beitrag 1279571)
Nimm die Vorlagendatei, kopiere diese an die gewünschte Stelle mit der Endung ".xls" ...

Ich wollte eben gerade verhindern, dass die Datei schon gespeichert wird. Erst wenn der Anwender speichern will, soll er bei "Speichern" gleich unter dem vordefinierten Namen speichern und bei "Speichern unter" den Namen vorgeschlagen bekommen.

Grüße
Gerd


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