Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Word Dokument In Excel einfügen (https://www.delphipraxis.net/184696-word-dokument-excel-einfuegen.html)

Nimmersatt 15. Apr 2015 10:40

Word Dokument In Excel einfügen
 
Hallo,

Ich möchte eine Word-Datei in Excel einfügen.

In Excel geht das so
Einfügen ->Objekt -> aus Datei erstellen->Durchsuchen-> OK

Wie kann ich das in Delphi realisieren ?

So stelle ich mir das vor -> Excel.cells[1,1]:=einbetten("c:\Planung.docx";"");

Ziel ist es, eine Excel-Datei mit integrierter Word-Datei weiterreichen zu können, ohne das von der Excel-Datei aus auf eine Word-Datei zugegriffen werden muss.


mfg Nimmersatt

mkinzler 15. Apr 2015 10:50

AW: Word Dokument In Excel einfügen
 
Einfach in Makroaufzeichnung starten und Vorgang ausführen.
Danach im Makro sehen wie der Befehl aussieht.

-> ActiveSheet.OLEObjects.Add

Nimmersatt 15. Apr 2015 13:08

AW: Word Dokument In Excel einfügen
 
Macro-Code

ActiveSheet.OLEObjects.Add(Filename:= _
"C:\Planung.docx", Link:=False, DisplayAsIcon:= _
False).Select;


Delphi-Code

excel.ActiveSheet.OLEObjects.Add('Planung.docx');

Fehlermeldung
'Objekt kann nicht eingefügt werden'


Wie geht es weiter ?

mkinzler 15. Apr 2015 13:10

AW: Word Dokument In Excel einfügen
 
Übergebe mal den kompletten Pfad

Nimmersatt 15. Apr 2015 13:20

AW: Word Dokument In Excel einfügen
 
Ich habe schon den korrekten Pfad eingegeben

excel.ActiveSheet.OLEObjects.Add('c:\eigene Dateien\Planung.docx');

Nimmersatt 15. Apr 2015 16:16

AW: Word Dokument In Excel einfügen
 
excel.ActiveSheet.OLEObjects.Add('c:\eigene Dateien\Planung.docx');


die ausführliche Fehlermeldung lautet:

...ist eine Exception der Klasse Eoleexception aufgetreten. Meldung 'Objekt kann nicht eingefügt werden'.Prozess wurde angehalten.



excelobj.ActiveSheet.OLEObjects.Add('C:\eigene Dateien\Work111.docx',false,false,40,40,150,10);

Meldung: 'Die Add-Methode des Oleobjects-Objektes konnte nicht ausgeführt werden.'


ich habe keine Idee, wo ich jetzt ansetzen könnte

p80286 15. Apr 2015 21:21

AW: Word Dokument In Excel einfügen
 
Zitat:

Zitat von Nimmersatt (Beitrag 1297828)
Macro-Code

Code:
ActiveSheet.OLEObjects.Add(Filename:="C:\Planung.docx", Link:=False, DisplayAsIcon:=False).Select;

Delphi-Code

Code:
excel.ActiveSheet.OLEObjects.Add('Planung.docx');

Da gibt es ja kleine Unterschiede!
Hast Du das mal überprüft?

Gruß
K-H

Chemiker 15. Apr 2015 21:45

AW: Word Dokument In Excel einfügen
 
Hallo Nimmersatt,

sollte mit Excel 2007 so funktionieren.

Delphi-Quellcode:
procedure TForm1.btWordDokumentEinbettenClick(Sender: TObject);
var
  DateiName: TFileName;
  olevEXCELoffen: OLEVariant;
begin
  try
    olevEXCELoffen := CreateOleObject('Excel.Application');
  except
    ShowMessage('Excel konnte nicht gestartet werden !');
    Exit;
  end;
  olevEXCELoffen.Visible:= TRUE;
  if ExcelOpenDialog1.Execute then
  begin
    DateiName:= ExcelOpenDialog1.FileName;
  end;
  olevEXCELoffen.Workbooks.add;
  olevEXCELoffen.range['C1','C1'].Select;
  olevEXCELoffen.ActiveSheet.OLEObjects.add(Filename:= DateiName, Link:=False, DisplayAsIcon:=False).Select;

  ShowMessage('Excel schauen !');

  if NOT VarIsEmpty(olevEXCELoffen) then
  begin
    olevEXCELoffen.Quit;
    olevEXCELoffen:= Unassigned;
  end;
end;


Bis bald Chemiker

Nimmersatt 16. Apr 2015 11:45

AW: Word Dokument In Excel einfügen
 
Hallo Chemiker,


Es hat alles wunderbar geklappt.:thumb:

Ich will aber mehr

Ich möchte ein mehrseitiges Word-Dokument einbinden. Unter Excel wird das mit einem Doppelklick auf das Dokument realisiert, es schaltet dann in den Word-Modus um.

Wie kann ich das in Delphi realisieren ?

Und dann noch eine nächste Bitte...

Wir kann ich die Höhe und Breite des Ausschnittes festlegen, in dem das Word-Dokument sichtbar ist ?


mfg Nimmersatt

Jumpy 16. Apr 2015 12:00

AW: Word Dokument In Excel einfügen
 
Ich poste mal nur einen Link zu msdn, da sieht man die weiteren Parameter der Add Methode:

https://msdn.microsoft.com/DE-DE/lib.../ff195728.aspx

p80286 16. Apr 2015 13:44

AW: Word Dokument In Excel einfügen
 
Zitat:

Zitat von Nimmersatt (Beitrag 1297951)
Ich möchte ein mehrseitiges Word-Dokument einbinden. Unter Excel wird das mit einem Doppelklick auf das Dokument realisiert, es schaltet dann in den Word-Modus um.

Wenn ich mich nicht irre, reicht es das Word-Dokument in Excel einzubinden. Da hat Delphi eigentlich recht wenig mit zu tun.

Ich hab einmal ein wenig mit Excel gespielt:

Code:
 Range("A3").Select
    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:= _
        "C:\Daten\Defining Parameters for reading invoices in xml format.rtf", _
        TextToDisplay:= _
        "C:\Daten\Defining Parameters for reading invoices in xml format.rtf"
    Range("A3").Select
    Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
Code:
Range("B10").Select
    ActiveSheet.OLEObjects.Add(Filename:= _
        "C:\Daten\Defining Parameters for reading invoices in xml format.rtf", Link:= _
        False, DisplayAsIcon:=False).Select
    Selection.Verb Verb:=xlPrimary
    ActiveSheet.Shapes.Range(Array("Object 1")).Select
    ActiveSheet.Shapes("Object 1").IncrementLeft 5.25
    ActiveSheet.Shapes("Object 1").IncrementTop 24.75
Im ersten Beispiel wird nur ein Link bzw der entsprechende Text angezeigt,
Im zwiten wird gleich Word mit dem Dateiinhalt eingeblendet, und die Größenänderungen der Anzeige sind mit dabei.

Ich hoffe das hilft Dir weiter.

Gruß
K-H

Nimmersatt 16. Apr 2015 15:37

AW: Word Dokument In Excel einfügen
 
Ich bin jetzt ein Stück weiter

Code:
olevEXCELoffen.ActiveSheet.OLEObjects.add(Filename:='c:\eigene Dateien\Planung.docx', Link:=false, DisplayAsIcon:=False).Select;
olevEXCELoffen.selection.Verb;
Zeigt das Word-Dokument an, springt dann aber in den alten Modus zurück.
Wie verhindere ich das ?


bei

Code:
olevEXCELoffen.selection.Verb:=Xlprimary;
Undefinierter Bezeichner: 'xlPrimary'


bei
Code:
olevEXCELoffen.selection.Verb:=1;
Meldung: Die Verb-Eigenschaft des Oleobjekts-Objekt kann nicht festgelegt werden

mkinzler 16. Apr 2015 15:43

AW: Word Dokument In Excel einfügen
 
Definiere dir die Konstante xlPrimary als 1.

Nimmersatt 16. Apr 2015 15:50

AW: Word Dokument In Excel einfügen
 
Hallo Mkinzler,

Code:
 olevEXCELoffen.selection.Verb:=1;
Meldung: Die Verb-Eigenschaft des Oleobjekts-Objekt kann nicht festgelegt werden

Nimmersatt 16. Apr 2015 15:58

AW: Word Dokument In Excel einfügen
 
Meine Vermutung ist, das beim Beenden auch der Word-Modus beendet wird und zum alten Modus zurückkehrt.
Die Excel-Entwickler gehen wohl davon aus, das die Anwender wissen, wie man in den Word-Modus (Doppelklick auf das Dokument) umschaltet, was nicht der Fall ist.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:02 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-2025 by Thomas Breitkreuz