![]() |
Excel als PDF über Fernsteuerung speichern
Hallo zusammen,
ich arbeite momentan an einem Programm, das unter anderem Excel Dateien als PDF abspeichern soll. Ich habe beim suchen nach einer Lösung schon gesehen, dass es mithilfe von Druckern oder AddIns möglich ist, darauf würde ich aber gerne verzichten. Normalerweise extrahiere ich die benötigten Befehle einfach aus in Excel erstellten Markos. Daraus ergibt sich in diesem Fall folgender Code: ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ "C:\Users\SC5\Desktop\test.pdf", Quality:= _ xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _ OpenAfterPublish:=False Meistens genügt es, diesen Code etwas an Delphi anzupassen, also etwa so (Ziel ist ein String, welcher den Pfad enthält):
Delphi-Quellcode:
Hier stosse ich aber an das Problem, dass Delphi (Im Gegensatz zu den meisten Xl... Konstanten) weder XLTypePDF noch xlQualityStandart erkennt. Hat jemand eine Idee, wie ich die Werte der Konstanten herausfinden kann, um diese einzufügen, oder wie ich das Problem anders lösen kann ?
Excel.ActiveSheet.ExportAsFixedFormat(xlTypePDF, PWideChar(Ziel), xlQualityStandard,
True, False, False) Vielen Dank für die Hilfe! |
AW: Excel als PDF über Fernsteuerung speichern
|
AW: Excel als PDF über Fernsteuerung speichern
Danke erstmal für Deine Antwort :)
Ich befürchte, das ist eine ziemliche Anfängerfrage, aber was bedeutet das nun? Das -
Delphi-Quellcode:
- kann doch nicht gemeint sein oder?
Excel.ActiveSheet.ExportAsFixedFormat('PDF', PWideChar(Ziel), 'Standard quality',
True, False, False) |
AW: Excel als PDF über Fernsteuerung speichern
Delphi-Quellcode:
Wenn man schnell mal einen Stapel Konstanten bei Word und Excel braucht kann es hilfreich sein einfach eine Makro zu erstellen und sich den Wert in einer MsgBox anzeigen zu lassen.
Excel.ActiveSheet.ExportAsFixedFormat(0, PWideChar(Ziel), 0,
True, False, False) Im Menü unter weitere Befehle >> Menüband anpassen >> Entwicklertools anhaken.
Code:
Sub dummy()
MsgBox (xlTypePDF) End Sub |
AW: Excel als PDF über Fernsteuerung speichern
Ah, das ist ein super Tipp, danke Dir! Den werd ich sicher noch öfter brauchen können. Wenn ich es richtig gemacht habe, sind beide Werte in meinem Fall 0, ich habe es also mit
Delphi-Quellcode:
versucht. Daraufhin bekomme ich aber die Fehlermeldung "Die Zahl muss zwischen 1 und *Größtmöglicher Integer* liegen" und mein Programm gibt folgenden Fehler aus:
Excel.ActiveSheet.ExportAsFixedFormat(0, PWideChar(Ziel), 0, True, False, False)
--------------------------- Sckg --------------------------- OLE-Fehler 800A03EC. --------------------------- OK --------------------------- Was habe ich denn falsch gemacht ? Da es in Excel Konstanten sind (Oder?) kann es nicht daran liegen, dass sie durch Eingaben, die ich in meinem kleinen Makro nicht berücksichtigt habe, verändert werden... *EDIT* Oh, ich sehe gerade, Du hast mir die Konstanten ja schon rausgesucht, das hatte ich ganz übersehen, sorry ;-) Naja, jetzt hab ich's immerhin auch mal selbst gemacht :) |
AW: Excel als PDF über Fernsteuerung speichern
Das letzte false in dem Aufruf macht den Ärger, wenn Du das PDF nicht anzeigen musst setze dort einfach EmptyParam ein, ansonsten siehe hier:
![]() Mit benannten Parametern kann man sich auf das beschränken was einen interessiert.
Delphi-Quellcode:
xls.ActiveSheet.ExportAsFixedFormat(Type:=0, Filename:='C:\temp\test.pdf', OpenAfterPublish:= true)
|
AW: Excel als PDF über Fernsteuerung speichern
Das funktioniert, vielen lieben Dank :-) Allerdings erkennt Delphi "Type" automatisch und wirft daher einen Fehler (das Programm wird aber trotzdem gestartet). Die Rote Markierung irritiert aber trotzdem, gibt es einen Weg, das zu ändern?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:05 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz