AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi CreateOleObject('Word.Application') - Dotx öffnen aber docx bekommen, wie?

CreateOleObject('Word.Application') - Dotx öffnen aber docx bekommen, wie?

Ein Thema von Piro · begonnen am 27. Nov 2018 · letzter Beitrag vom 30. Nov 2018
Antwort Antwort
Seite 2 von 2     12
Delphi.Narium

Registriert seit: 27. Nov 2017
2.415 Beiträge
 
Delphi 7 Professional
 
#11

AW: CreateOleObject('Word.Application') - Dotx öffnen aber docx bekommen, wie?

  Alt 28. Nov 2018, 08:57
Du willst doch zur Laufzeit des Programmes per Wordfernsteuerung ein Dokument erstellen und mit Inhalt befüllen.

Meiner Meinung nach ist es in diesem Zusammenhang unsinnig, für die Erstellung des Dokumentes nicht die Wordfernsteuerung zu nehmen, sondern über einen anderen Weg zu versuchen (hier ShellExecute) Word zu starten und dann "irgendwie" eine Verbindung zu Word zu bekommen, mit der dann weitergearbeitet wird.

Mit Shellexecute wird nicht Word gestartet, sondern das mit dem Dateityp verbundene Programm. Das mag meist Word sein, muss es aber nicht. Wenn Du für Deine Aufgabe zwingend Word benötigst, dann starte Wort über die Schnittstelle, also Word := CreateOleObject('Word.Application'); . Vorteil, wenn das nicht funktioniert, weißt Du sofort, dass kein Word zur Verfügung steht und musst dann nicht per ShellExecute hoffen, dass Du zufällig das "richtige" Word startest und nicht eventuell was anderes, auf das Du dann sowieso keinerlei Einfluß hast. Fände es als Anwender jedenfalls befremdlich, wenn "mein" Programm ein Dokument erstellen soll, aber irgendwie bei jedem Versuch 'ne neue Instanz von OpenOffice mit 'nem leeren Dokument startet und dann nix mehr passiert.

Die Parameter von Word sind nicht eindeutiger, es sind halt unterschiedliche Wege zum gleichen Ziel. Man muss sich für die Wordfernsteuerung halt schon mit der Schnittstelle befassen und da gehört das Erstellen eines neuen Dokumentes schon eher zu den einfachen Aufgaben.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#12

AW: CreateOleObject('Word.Application') - Dotx öffnen aber docx bekommen, wie?

  Alt 28. Nov 2018, 09:23
ich habe ein Datei vorlage.dotx, welche ich öffne und mit Daten fülle.
Erstelle ein neues Dokument mit Hilfe der Vorlage und speichere es im gewünschten Format ab.
Deine Vorgehensweise wird zwar oft angewandt ist aber schlicht falsch.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Schokohase
(Gast)

n/a Beiträge
 
#13

AW: CreateOleObject('Word.Application') - Dotx öffnen aber docx bekommen, wie?

  Alt 28. Nov 2018, 13:49
Falls sich noch jemand dafür interessiert, wie das per ShellExecute funktioniert
Delphi-Quellcode:
var
 doc : String;
begin
 doc := frm_main.AppPath + 'data\formulare\vorlage.dotx';
 if FileExists(doc) then
 begin
   ShellExecute(0, 'new', PChar(doc), nil, nil, SW_NORMAL );
 end;
end;
  • open - öffnet die Vorlage zum Bearbeiten
  • new - erstellt ein Dokument auf Basis der Vorlage und öffnet dieses zum Bearbeiten
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.733 Beiträge
 
Delphi 6 Enterprise
 
#14

AW: CreateOleObject('Word.Application') - Dotx öffnen aber docx bekommen, wie?

  Alt 28. Nov 2018, 14:02
Das "new" kannte ich noch nicht, als mögliches Command für ShellExecute. Funzt das nur bei Word?
Ralph
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
3.896 Beiträge
 
Delphi 12 Athens
 
#15

AW: CreateOleObject('Word.Application') - Dotx öffnen aber docx bekommen, wie?

  Alt 28. Nov 2018, 14:16
Das "new" wäre mir auch neu, wo ist das denn beschrieben ?

Hier gibts noch ein paar mehr Optionen.

Edit:
Ok, der Trick könnte sein das man es in der Registry vorher abfragen muss was geht.

Geändert von Rollo62 (28. Nov 2018 um 14:26 Uhr)
  Mit Zitat antworten Zitat
Schokohase
(Gast)

n/a Beiträge
 
#16

AW: CreateOleObject('Word.Application') - Dotx öffnen aber docx bekommen, wie?

  Alt 28. Nov 2018, 14:28
Rechte Maustaste auf so eine .dotx Datei zeigt mir im Kontext-Menü Neu, Öffnen und Drucken an.
Also auf Englisch New, Open und Print.

Neugierig wie ich nun mal bin ...
  Mit Zitat antworten Zitat
Benutzerbild von Piro
Piro

Registriert seit: 14. Jul 2003
Ort: Flintbek
810 Beiträge
 
Delphi XE2 Professional
 
#17

AW: CreateOleObject('Word.Application') - Dotx öffnen aber docx bekommen, wie?

  Alt 30. Nov 2018, 00:09
Sorry, dass ich mich jetzt erst melde. Hatte viel um die Ohren.


Super Antworten und tolle Ansätze.

In unserer Firma haben alle Office und daher Word.

CreateOleObject ist schon der richtiger Weg und funktioniert wie gewünscht.

Das mit dem Parameter new werde ich mal versuchen.

Vielen Dank an alle. Mein Problem ist gelöst
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:23 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