Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Aktives Excel Workbook umbenennen (https://www.delphipraxis.net/160593-aktives-excel-workbook-umbenennen.html)

Steffen0917 21. Mai 2011 13:32

Aktives Excel Workbook umbenennen
 
Hallo zusammen,

ich öffne mit

Excel:=CreateOleObject('Excel.Application');
Workbook:=Excel.Workbooks.open(filename,emptyparam );

ein Excel Dokument und bearbeite mit excel.sheets[1].cells[10,28].value ein paar Zellen.

Ich möchte dann sofort einen neuen Namen zuweisen, da "filename" nur eine Vorlage ist.

Speichern mit "Workbook.SaveAs" wäre zwar eine Möglichkeit, aber ich möchte es dem Anwender
überlassen, ob er überhaupt speichern möchte.

Weiß jemand Rat?

Gruß, Steffen

Jumpy 21. Mai 2011 21:00

AW: Aktives Excel Workbook umbenennen
 
Wenn du es dem Anwender überlassen willst, so muss dieser auch den neuen Namen aussuchen, da kannst du nichts machen. Ausser natütlich die Vorlage (als Datei) schützen, so dass der Anwender die Vorlage nicht überschreiben kann.

Oder aber in der Vorlage ein VBA-Makro hinterlegen, dass beim Save-Event stattdessen das SaveAs-Event auslöst.

Oder, wenn der Anwender gar nicht richtig mitbekommt, dass Excel offen ist, er quasi noch im Delphi-Programm ist, könntest du den Delphi-Dialog zum Speichern nutzen.

rainerg 21. Mai 2011 21:50

AW: Aktives Excel Workbook umbenennen
 
Stell doch deinen User vorher einfach per Dialog die Frage, ob er speichern möchte.

Steffen0917 21. Mai 2011 21:58

AW: Aktives Excel Workbook umbenennen
 
Hallo Ralph,

mein Programm muss den neuen Namen bestimmen.
Hintergrund ist, dass das Excel-Dok (mit dem neuen Namen ! ) bearbeitet wird und dann als PDF gespeichert wird.
Das klappt ja auch prima, aber ich habe jetzt immer NeuerName.xls und NeuerName.PDF.
Ich möchte also das Excel Dok gar nicht speichern.

Vielleicht kann auch der NeuName beim Drucken übergeben werden (an den PDF-Drucker) ??

Gruß, Steffen

Jumpy 22. Mai 2011 20:16

AW: Aktives Excel Workbook umbenennen
 
2 Gedanken, jetzt wo ich weiß, dass es um PDF geht:

1. Geht für alles: Nach Abschluss der ganzen Aktion das Excel-File einfach wieder löschen. Dann ist das quasi nur eine temporäre Datei.

2. Excel2007 oder höher hat ja (ggf. mit AddOn) die Möglichkeit direkt als PDF exportiert zu werden. Habs glaub ich noch nicht gemacht, aber dazu musst du entweder beim SaveAs einfach nur die richtigen Parameter mitgeben, oder in der Excel-Hilfe nachschauen, wie man als PDF speichert, vll. ist das auch eine eigen Funktion...

Chemiker 23. Mai 2011 20:20

AW: Aktives Excel Workbook umbenennen
 
Hallo Steffen0917,

ab Excel 2007 kann man die Datei auch direkt als PDF speichern.
Zum Bleistift:

Delphi-Quellcode:
EXCEL.ActiveWorkbook.ExportAsFixedFormat (type :=xlTypePDF, Filename:='C:\Users\Internet1\Documents\pdftest5');


An dem Filename keine Dateiendung hängen die wird mit [type] bestimmt und automatisch als PDF interpretiert.

Der Ablauf währe so:

1. Excel öffnen
2. Formular laden
3. Daten manipulieren
4. Als PDF speichern
5. Excel schließen

Bis bald Chemiker


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