Announcement

Collapse
No announcement yet.

C# word datei erstellen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • C# word datei erstellen

    Hallo,

    Ich bin ein absuluter anfänger in C# und bräuchte mal hilfe!

    Also ich möchte mit Visual Studio 2005 C# ein Word Dokument erzeugen und
    habe absolut keinen schimmer wie ich das meistern soll!

    könnte mir jemand vielleicht helfen???

    Jede hilfe wäre sehr nett!

    Mit freundlichen Grüßen
    Avalon1987

  • #2
    Hallo,

    wenn die Visual Studio 2005 Team Edition for Software Developers verwendet wird, stehen die Visual Studio Tools for Office (VSTO) zur Verfügung, um Office-Projekte direkt in die IDE von Visual Studio 2005 zu integrieren. VSTO kapselt die eigenen Word-Elemente (Textmarken etc.) automatisch als Klasse, so dass sowohl IntelliSense als auch der Eigenschaftsdialog zur Verfügung steht.

    Alternativ zu VSTO stehen über COM Interop die Zugriffe auf die Automation-Objekte von Microsoft Word zur Verfügung. Dann allerdings ohne den visuellen Komfort, sondern nur über den Quelltext. Der direkte Automation-Zugriffe würde zum Beispiel so aussehen:

    Code:
    	string sDOT = null;  
    	openFileDialog1.InitialDirectory = @"D:\Daten\VSNET2003\WordXPAutomation" ;
    	if(openFileDialog1.ShowDialog() == DialogResult.OK)
    	{
    		sDOT = openFileDialog1.FileName;
    				
    		// Instanz von Microsoft Word XP über Automation anfordern.
    		Microsoft.Office.Interop.Word.ApplicationClass oMsWord = new Microsoft.Office.Interop.Word.ApplicationClass();
    		Microsoft.Office.Interop.Word.Documents oMsDocs = oMsWord.Documents;
    				
    		// Automation-Instanz anzeigen
    		oMsWord.Visible = true;
    
    		// Neues Word-Dokument von der ausgewählten Vorlage anlegen
    		object oMissingValue = System.Reflection.Missing.Value;
    		object oTemplateName = (object) sDOT;
    		object oNewTemplate = false;
    		object oDocType = 0;
    		object oMakeDocVisible = true;            
    		Microsoft.Office.Interop.Word._Document oNewMsWordDoc;
    		oNewMsWordDoc = oMsWord.Documents.Add(ref oTemplateName, ref oNewTemplate,
    			ref oDocType, ref oMakeDocVisible);
    		// Dokumentenschutz aufheben, falls notwendig
    		if(oNewMsWordDoc.ProtectionType != Microsoft.Office.Interop.Word.WdProtectionType.wdNoProtection)
    		{
    			oNewMsWordDoc.Unprotect(ref oMissingValue);
    		}
    
    		// Text über eine Textmarke in das Dokument eintragen
    		object oBmkCounty = "Textmarke1";            
    		oNewMsWordDoc.Bookmarks.get_Item(ref oBmkCounty).Range.Text = "Der .NET-Wert.";
    								
    		// 10 Sekunden Pause
    		System.Threading.Thread.Sleep(10000);
    
    		// Dokument schließen und aufräumen
    		object oSaveChanges = false;
    		oNewMsWordDoc.Close(ref oSaveChanges, ref oMissingValue, ref oMissingValue);
    		Marshal.ReleaseComObject(oNewMsWordDoc);
    		Marshal.ReleaseComObject(oMsDocs);
    		oMsWord.Quit(ref oMissingValue, ref oMissingValue, ref oMissingValue);
    		Marshal.ReleaseComObject(oMsWord);
    		oMsWord = null;
    	}
    Mit VSTO wird es übersichtlicher, weil die VSTO-Runtime über Aggregation die COM-Objekte von Microsoft Office um zusätzliche Hilfsmethoden/Eigenschaften erweitert. Außerdem ist C# erst mit VSTO beim Zugriff auf Microsoft Office gleichrangig mit VB (das Office-Objektmodell wurde für VBA konzipiert, so dass stellenweise die späte Bindung vorausgesetzt wird).
    Zuletzt editiert von Andreas Kosch; 10.04.2007, 14:29.

    Comment

    Working...
    X