ERLEDIGT
JA
JA
ANTWORTEN
15
15
ZUGRIFFE
2508
2508
EMPFEHLEN
-
13.01.06 13:36 #1
- Registriert seit
- Oct 2004
- Beiträge
- 483
Hallo,
ich möchte mit C# ein Word Ducument öffnen, und dann ein Bild einfügen.
Jedoch bekomme ich die Word Datei nicht geöffnet, immer hat er Fehler mit meiner Öffnen Syntax.
Ich habe das momentan so :
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
[size=2]Word.[/size][size=2][color=#008080]Application[/color][/size][size=2] wordapp = [/size][size=2][color=#0000ff]new[/color][/size][size=2] Word.[/size][size=2][color=#008080]Application[/color][/size][size=2](); [/size][size=2][color=#0000ff]object[/color][/size][size=2] path = [/size][size=2][color=#800000]"TEST.DOC"[/color][/size][size=2]; [/size][size=2][color=#0000ff]object[/color][/size][size=2] vk_read_only = [/size][size=2][color=#0000ff]false[/color][/size][size=2]; [/size][size=2][color=#0000ff]object[/color][/size][size=2] vk_visible = [/size][size=2][color=#0000ff]true[/color][/size][size=2]; [/size][size=2][color=#0000ff]object[/color][/size][size=2] vk_false = [/size][size=2][color=#0000ff]false[/color][/size][size=2]; [/size][size=2][color=#0000ff]object[/color][/size][size=2] vk_true = [/size][size=2][color=#0000ff]true[/color][/size][size=2]; [/size][size=2][color=#0000ff]object[/color][/size][size=2] vk_dynamic = 2; [/size][size=2][color=#0000ff]object[/color][/size][size=2] vk_missing = System.Reflection.[/size][size=2][color=#008080]Missing[/color][/size][size=2].Value; Word.[/size][size=2][color=#008080]Document[/color][/size][size=2] worddoc = wordapp.Documents.Open([/size][size=2][color=#0000ff]ref[/color][/size][size=2] path, [/size][size=2][color=#0000ff]ref[/color][/size][size=2] vk_missing, [/size][size=2][color=#0000ff]ref[/color][/size][size=2] vk_read_only, [/size][size=2][color=#0000ff]ref[/color][/size][size=2] vk_missing, [/size][size=2][color=#0000ff]ref[/color][/size][size=2] vk_missing, [/size][size=2][color=#0000ff]ref[/color][/size][size=2] vk_missing, [/size][size=2][color=#0000ff]ref[/color][/size][size=2] vk_missing, [/size][size=2][color=#0000ff]ref[/color][/size][size=2] vk_missing, [/size][size=2][color=#0000ff]ref[/color][/size][size=2] vk_missing, [/size][size=2][color=#0000ff]ref[/color][/size][size=2] vk_missing, [/size][size=2][color=#0000ff]ref[/color][/size][size=2] vk_missing); worddoc.Activate(); wordapp.Selection.TypeText([/size][size=2][color=#800000]"TEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEST"[/color][/size][size=2]); wordapp.Selection.TypeParagraph(); worddoc.Save(); wordapp.Close([/size][size=2][color=#0000ff]ref[/color][/size][size=2] vk_false, [/size][size=2][color=#0000ff]ref[/color][/size][size=2] vk_missing, [/size][size=2][color=#0000ff]ref[/color][/size][size=2] vk_missing); [/size]
Habe den Code von Codeproject.com, aber auch andere Codebeispiele funktionieren nicht
Kann mir einer verraten wo ich den Fehler habe ?
Danke
Gruß
MFC OpenGL
PS : Ich habe die using Microsoft.Office; eingebunden, muss aber trotzdem immer noch WORD vor die Befehle schreibenSprache : C/C++/C# & MFC
Compiler : MSVC++ 7 / VS2003.net
OS : Windows XP/2k
-
16.01.06 11:49 #2
- Registriert seit
- Oct 2004
- Beiträge
- 483
Hat keiner ne Idee wie ich das in C# machen kann, ein Word Document zu öffnen ?
Gerade habe ich gesehen, das ich kein using Microsoft.Office.Interop.Word; habe, er erkennt das Interop nicht. Brauche ich dafür nen bestimmtes SDK oder so ?
HIIIILFE
Gruß
MFC OpenGL
EDIT : Ein SDK gibts nicht, aber eine Interop Sammlung mit DLLs für Office, downloadbar über Microsoft.com
Weiterhin habe ich aber keine Ahnung wieso mein Open nicht geht
Hat wirklich noch nie jemand mit OFFICE kommunizieren müssen ?
Geändert von MFC openGL (16.01.06 um 14:39 Uhr)
Sprache : C/C++/C# & MFC
Compiler : MSVC++ 7 / VS2003.net
OS : Windows XP/2k
-
Sollte sich eigentlich nicht anders wie beim Excel verhalten.
Zitat von MFC openGL
Nur dass das Word halt andere Propertys hat.
In diesem Post findest Links zu ExcelThemen die dir veranschaulichen,
wie man eine Officeanwendung via Interop öffnet und wieder ordnungsgemäß schließt.
lg, cosmoMfG,
Christian
Wer sein Problem definiert, hat es schon halb gelöst!
Bitte markiert eure Themen als erledigt. Sonst macht so ein Forum als Nachschlagewerk keinen Sinn.
The Code Project! - C# Programming | C# / VB.NET Pendants
Regeln + Netiquette
Liebe FIAEs, verlasst euch nicht auf das was in der Berufsschule "vermittelt" wird
und vor allem nicht auf das, was euch die IHK dazu erzählt!
Die haben so viel Ahnung von dem Gewerk, wie der Bundestag vom Haushalt...
-
31.01.06 10:59 #4
- Registriert seit
- Oct 2004
- Beiträge
- 483
Lösung incl einbinden eines Bildes lautet :
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
[SIZE=2]Word.[/SIZE][SIZE=2][COLOR=#008080]Application[/COLOR][/SIZE][SIZE=2] wordapp = [/SIZE][SIZE=2][COLOR=#0000ff]new[/COLOR][/SIZE][SIZE=2] Word.[/SIZE][SIZE=2][COLOR=#008080]Application[/COLOR][/SIZE][SIZE=2](); [/SIZE][SIZE=2][COLOR=#0000ff]object[/COLOR][/SIZE][SIZE=2] path = ([/SIZE][SIZE=2][COLOR=#0000ff]object[/COLOR][/SIZE][SIZE=2]) [/SIZE][SIZE=2][COLOR=#800000]@"F:\TEST.DOC"[/COLOR][/SIZE][SIZE=2]; [/SIZE][SIZE=2][COLOR=#0000ff]object[/COLOR][/SIZE][SIZE=2] vk_read_only = [/SIZE][SIZE=2][COLOR=#0000ff]false[/COLOR][/SIZE][SIZE=2]; [/SIZE][SIZE=2][COLOR=#0000ff]object[/COLOR][/SIZE][SIZE=2] vk_visible = [/SIZE][SIZE=2][COLOR=#0000ff]false[/COLOR][/SIZE][SIZE=2]; [/SIZE][SIZE=2][COLOR=#0000ff]object[/COLOR][/SIZE][SIZE=2] vk_false = [/SIZE][SIZE=2][COLOR=#0000ff]false[/COLOR][/SIZE][SIZE=2]; [/SIZE][SIZE=2][COLOR=#0000ff]object[/COLOR][/SIZE][SIZE=2] vk_true = [/SIZE][SIZE=2][COLOR=#0000ff]true[/COLOR][/SIZE][SIZE=2]; [/SIZE][SIZE=2][COLOR=#0000ff]object[/COLOR][/SIZE][SIZE=2] vk_dynamic = 2; [/SIZE][SIZE=2][COLOR=#0000ff]object[/COLOR][/SIZE][SIZE=2] vk_missing = [/SIZE][SIZE=2][COLOR=#008080]Type[/COLOR][/SIZE][SIZE=2].Missing; Word.[/SIZE][SIZE=2][COLOR=#008080]Document[/COLOR][/SIZE][SIZE=2] worddoc = wordapp.Documents.Open([/SIZE][SIZE=2][COLOR=#0000ff]ref[/COLOR][/SIZE][SIZE=2] path, [/SIZE][SIZE=2][COLOR=#0000ff]ref[/COLOR][/SIZE][SIZE=2] vk_missing, [/SIZE][SIZE=2][COLOR=#0000ff]ref[/COLOR][/SIZE][SIZE=2] vk_read_only, [/SIZE][SIZE=2][COLOR=#0000ff]ref[/COLOR][/SIZE][SIZE=2] vk_missing, [/SIZE][SIZE=2][COLOR=#0000ff]ref[/COLOR][/SIZE][SIZE=2] vk_missing, [/SIZE][SIZE=2][COLOR=#0000ff]ref[/COLOR][/SIZE][SIZE=2] vk_missing, [/SIZE][SIZE=2][COLOR=#0000ff]ref[/COLOR][/SIZE][SIZE=2] vk_missing, [/SIZE][SIZE=2][COLOR=#0000ff]ref[/COLOR][/SIZE][SIZE=2] vk_missing, [/SIZE][SIZE=2][COLOR=#0000ff]ref[/COLOR][/SIZE][SIZE=2] vk_missing, [/SIZE][SIZE=2][COLOR=#0000ff]ref[/COLOR][/SIZE][SIZE=2] vk_missing, [/SIZE][SIZE=2][COLOR=#0000ff]ref[/COLOR][/SIZE][SIZE=2] vk_missing, [/SIZE][SIZE=2][COLOR=#0000ff]ref[/COLOR][/SIZE][SIZE=2] vk_missing, [/SIZE][SIZE=2][COLOR=#0000ff]ref[/COLOR][/SIZE][SIZE=2] vk_missing, [/SIZE][SIZE=2][COLOR=#0000ff]ref[/COLOR][/SIZE][SIZE=2] vk_missing, [/SIZE][SIZE=2][COLOR=#0000ff]ref[/COLOR][/SIZE][SIZE=2] vk_missing, [/SIZE][SIZE=2][COLOR=#0000ff]ref[/COLOR][/SIZE][SIZE=2] vk_missing); wordapp.Visible = [/SIZE][SIZE=2][COLOR=#0000ff]false[/COLOR][/SIZE][SIZE=2]; [/SIZE][SIZE=2][COLOR=#008000][/COLOR][/SIZE] [SIZE=2][COLOR=#0000ff]object[/COLOR][/SIZE][SIZE=2] bLinkToFile = [/SIZE][SIZE=2][COLOR=#0000ff]true[/COLOR][/SIZE][SIZE=2]; [/SIZE][SIZE=2][COLOR=#0000ff]object[/COLOR][/SIZE][SIZE=2] bSaveWithDoc = [/SIZE][SIZE=2][COLOR=#0000ff]true[/COLOR][/SIZE][SIZE=2]; [/SIZE][SIZE=2][COLOR=#0000ff]object[/COLOR][/SIZE][SIZE=2] l = 0; [/SIZE][SIZE=2][COLOR=#0000ff]object[/COLOR][/SIZE][SIZE=2] t = 0; [/SIZE][SIZE=2][COLOR=#0000ff]object[/COLOR][/SIZE][SIZE=2] w = 150; [/SIZE][SIZE=2][COLOR=#0000ff]object[/COLOR][/SIZE][SIZE=2] h = 150; Word.[/SIZE][SIZE=2][COLOR=#008080]Shape[/COLOR][/SIZE][SIZE=2] shp = worddoc.Shapes.AddCanvas(370, 20, 150, 150, [/SIZE][SIZE=2][COLOR=#0000ff]ref[/COLOR][/SIZE][SIZE=2] vk_missing); shp.CanvasItems.AddPicture([/SIZE][SIZE=2][COLOR=#800000]@"F:\testlogo2.bmp"[/COLOR][/SIZE][SIZE=2], [/SIZE][SIZE=2][COLOR=#0000ff]ref[/COLOR][/SIZE][SIZE=2] bLinkToFile, [/SIZE][SIZE=2][COLOR=#0000ff]ref[/COLOR][/SIZE][SIZE=2] bSaveWithDoc, [/SIZE][SIZE=2][COLOR=#0000ff]ref[/COLOR][/SIZE][SIZE=2] l, [/SIZE][SIZE=2][COLOR=#0000ff]ref[/COLOR][/SIZE][SIZE=2] t, [/SIZE][SIZE=2][COLOR=#0000ff]ref[/COLOR][/SIZE][SIZE=2] w, [/SIZE][SIZE=2][COLOR=#0000ff]ref[/COLOR][/SIZE][SIZE=2] h); [/SIZE][SIZE=2][COLOR=#0000ff]int[/COLOR][/SIZE][SIZE=2] i = wordapp.Documents.Count; [/SIZE][SIZE=2][COLOR=#008000] [/COLOR][/SIZE][SIZE=2] worddoc.Save(); wordapp.Documents.Close([/SIZE][SIZE=2][COLOR=#0000ff]ref[/COLOR][/SIZE][SIZE=2] vk_missing, [/SIZE][SIZE=2][COLOR=#0000ff]ref[/COLOR][/SIZE][SIZE=2] vk_missing, [/SIZE][SIZE=2][COLOR=#0000ff]ref[/COLOR][/SIZE][SIZE=2] vk_missing); wordapp.Quit([/SIZE][SIZE=2][COLOR=#0000ff]ref[/COLOR][/SIZE][SIZE=2] vk_missing, [/SIZE][SIZE=2][COLOR=#0000ff]ref[/COLOR][/SIZE][SIZE=2] vk_missing, [/SIZE][SIZE=2][COLOR=#0000ff]ref[/COLOR][/SIZE][SIZE=2] vk_missing); [/SIZE] System.Runtime.InteropServices.Marshal.ReleaseComObject( wordapp ); //auf speziellen Wunsch von Cosmo und Norbert ;)
Geändert von MFC openGL (31.01.06 um 15:05 Uhr)
Sprache : C/C++/C# & MFC
Compiler : MSVC++ 7 / VS2003.net
OS : Windows XP/2k
-
Hast an das
geacht?Code csharp:1
System.Runtime.InteropServices.Marshal.ReleaseComObject( wordapp );
Das meint ich mit dem "ordnungsgamäß Schließen". Oder brauchst das bei Word nicht?
Ich frage weil ich mit Word ansich noch nichts gemacht hab.
MfG,
Christian
Wer sein Problem definiert, hat es schon halb gelöst!
Bitte markiert eure Themen als erledigt. Sonst macht so ein Forum als Nachschlagewerk keinen Sinn.
The Code Project! - C# Programming | C# / VB.NET Pendants
Regeln + Netiquette
Liebe FIAEs, verlasst euch nicht auf das was in der Berufsschule "vermittelt" wird
und vor allem nicht auf das, was euch die IHK dazu erzählt!
Die haben so viel Ahnung von dem Gewerk, wie der Bundestag vom Haushalt...
-
31.01.06 12:21 #6
- Registriert seit
- Oct 2004
- Beiträge
- 483
Code :1 2 3
wordapp.Documents.Close([SIZE=2][COLOR=#0000ff]ref[/COLOR][/SIZE][SIZE=2] vk_missing, [/SIZE][SIZE=2][COLOR=#0000ff]ref[/COLOR][/SIZE][SIZE=2] vk_missing, [/SIZE][SIZE=2][COLOR=#0000ff]ref[/COLOR][/SIZE][SIZE=2] vk_missing); wordapp.Quit([/SIZE][SIZE=2][COLOR=#0000ff]ref[/COLOR][/SIZE][SIZE=2] vk_missing, [/SIZE][SIZE=2][COLOR=#0000ff]ref[/COLOR][/SIZE][SIZE=2] vk_missing, [/SIZE][SIZE=2][COLOR=#0000ff]ref[/COLOR][/SIZE][SIZE=2] vk_missing); [/SIZE]
Das macht das eigendlich gut
Weiß nicht was ich noch schließen soll, das Dokument wird geschlossen, und danach Word selbst. Geht wunderbar bei mir. (DLL's einbinden nicht vergessen)Sprache : C/C++/C# & MFC
Compiler : MSVC++ 7 / VS2003.net
OS : Windows XP/2k
-
Lies dir mal http://addressof.com/blog/archive/2004/03/05/474.aspx durch. Macht Sinn.
-
31.01.06 12:45 #8
- Registriert seit
- Oct 2004
- Beiträge
- 483
Hab ich gemacht, Norbert...
Aber wie schon gesagt, der Code hat bei mir "sicher" funktioniert, auch ohne den Codeteil.
Aber ich habe diese Art des Reporting eh verwerfen müssen, wegen Lizenzgründen.
Evtl liegt das aber auch an den Libery's, welche ich verwendet hab. Der Post dort ist ja schon 1 Jahr alt...
Wissen die Götter, ich zumindest nicht.
Gruß
MFC OpenGLSprache : C/C++/C# & MFC
Compiler : MSVC++ 7 / VS2003.net
OS : Windows XP/2k
-
TCP/IP is auch schon > 20 Jahre alt und ist auch noch gültig
-
31.01.06 13:54 #10
- Registriert seit
- Oct 2004
- Beiträge
- 483
Ja, sage ja auch nicht das es nicht gültig ist, sondern nur das ich das Problem evtl nicht habe weil ich wie gesagt eine "relativ" neue DLL habe.
Wenn du z.B. IPv6 nutzt, kann es ja auch sein das du Fehler in IPv5 nicht mehr hast... Oder nicht ? Wieso kann das hier nicht der Fall sein ?
Ich meine ich zwinge ja keinen den Code zu nutzen, ich sage nur das er bei mir so wie er da steht läuft.Sprache : C/C++/C# & MFC
Compiler : MSVC++ 7 / VS2003.net
OS : Windows XP/2k
-
Sicher funktioniert der Code, nur darum geht es gar nicht.
Zitat von MFC openGL
Es geht darum das alle verwendeten Resourcen der WordInstanz geschlossen werden.
Ich kenn es vom Excel das sich das Dokument schließt und sogar von der Taskleiste verschwindet,
aber die ExcelInstanz immer noch vorhanden ist sofern man ihre verwendeten Resourcen
nicht mit Marshal.ReleaseComObject schließt.
Zitat von MFC openGL
Touché
Zitat von Norbert Eder
MfG,
Christian
Wer sein Problem definiert, hat es schon halb gelöst!
Bitte markiert eure Themen als erledigt. Sonst macht so ein Forum als Nachschlagewerk keinen Sinn.
The Code Project! - C# Programming | C# / VB.NET Pendants
Regeln + Netiquette
Liebe FIAEs, verlasst euch nicht auf das was in der Berufsschule "vermittelt" wird
und vor allem nicht auf das, was euch die IHK dazu erzählt!
Die haben so viel Ahnung von dem Gewerk, wie der Bundestag vom Haushalt...
-
31.01.06 14:13 #12
- Registriert seit
- Oct 2004
- Beiträge
- 483
Zwingt dich doch keiner das Word hinterher wieder zu schließen.... Das ist nur ein Beispielcode... Du kannst genauso sagen wenn es schon offen war, lass es offen...
Beispielcode != "Copy/Paste -> Compilieren -> Klappt für jedes Problem"CodeSprache : C/C++/C# & MFC
Compiler : MSVC++ 7 / VS2003.net
OS : Windows XP/2k
-
Darum geht es nicht. Der Code funktioniert sicher auch ohne.
Du hättest nur ne WordInstanz im Arbeitsspeicher rumschwirren, von der der User keine Ahnung hat.
Öffnet das Programm 100 o. mehr Instanzen am Tag, kannst Dir ausmalen was passiert.
Vor allem wenn der User permanent den Ruhezustand verwendet, so wie ich.
MfG,
Christian
Wer sein Problem definiert, hat es schon halb gelöst!
Bitte markiert eure Themen als erledigt. Sonst macht so ein Forum als Nachschlagewerk keinen Sinn.
The Code Project! - C# Programming | C# / VB.NET Pendants
Regeln + Netiquette
Liebe FIAEs, verlasst euch nicht auf das was in der Berufsschule "vermittelt" wird
und vor allem nicht auf das, was euch die IHK dazu erzählt!
Die haben so viel Ahnung von dem Gewerk, wie der Bundestag vom Haushalt...
-
31.01.06 14:34 #14
- Registriert seit
- Oct 2004
- Beiträge
- 483
Auch da stimme ich dir nicht zu. Ich habe das soweit bei mir getestet gehabt. Der benötigte Arbeitsspeicher hat sich in meinen Tests durch den Code nie erhöht gehabt. Also kann keine Instanz übergeblieben sein.
Aber ihr 2 könnt euch ja zusammentun und eine verbesserte Version des Codes Posten, damit andere auf keinen Fall solche Problem bekommen
Sprache : C/C++/C# & MFC
Compiler : MSVC++ 7 / VS2003.net
OS : Windows XP/2k
-
Hast da richtig den Taskmanager überwacht? Ich mein wenn sich der Norbert sicher ist
dass das gebaucht wird, muss die WordInstanz nach dem Beenden ja noch vorhanden sein.
Wenn Du sagst das sie ohne Marshal.ReleaseComObject wirklich geschlossen wurde,
bin ich jetzt etwas verwirrt.
Btw. kann es nicht schaden wenn Du die eine Zeile unten an deinen Code mit drann klatschst,
über die wir jetzt schon 10 Posts lang diskutieren.
Das währe dann die verbesserte Version.
MfG,
Christian
Wer sein Problem definiert, hat es schon halb gelöst!
Bitte markiert eure Themen als erledigt. Sonst macht so ein Forum als Nachschlagewerk keinen Sinn.
The Code Project! - C# Programming | C# / VB.NET Pendants
Regeln + Netiquette
Liebe FIAEs, verlasst euch nicht auf das was in der Berufsschule "vermittelt" wird
und vor allem nicht auf das, was euch die IHK dazu erzählt!
Die haben so viel Ahnung von dem Gewerk, wie der Bundestag vom Haushalt...
Ähnliche Themen
-
Java5-Syntax in Java1.4-Syntax?
Von magic_halli im Forum JavaAntworten: 9Letzter Beitrag: 24.10.07, 14:11 -
sql von jet(access)-Syntax zu mySQL-Syntax
Von julegner im Forum Relationale DatenbanksystemeAntworten: 0Letzter Beitrag: 04.10.06, 12:28 -
document/view -> 2 views auf das document
Von CiC im Forum VisualStudio & MFCAntworten: 1Letzter Beitrag: 10.05.06, 16:44 -
document.open(); in Netscape ?
Von lylila im Forum Javascript & AjaxAntworten: 2Letzter Beitrag: 23.02.05, 17:52 -
document.write() und document.close()
Von Tucker im Forum Javascript & AjaxAntworten: 9Letzter Beitrag: 27.06.04, 18:46





Zitieren
Login





