using IronWord;
using IronWord.Models;
// Load docx
WordDocument doc = new WordDocument("document.docx");
// Add text
doc.AddText("Add text using IronWord");
// Export docx
doc.SaveAs("save_document.docx");
C# Word bearbeiten (Code-Beispiel Entwickler Tutorial)
Jordi Bardia
14. November 2023
Teilen Sie:
Das Erstellen, Bearbeiten und Verwalten von Word-Dokumenten ist eine häufige Anforderung für viele Anwendungen. Es gibt zwar mehrere Möglichkeiten, ein Word-Dokument in C# zu erstellen und zu bearbeiten, aber eine der leistungsfähigsten Methoden ist die Verwendung der Microsoft Interop-Dienste. Mit diesem Tool können Sie Word-Dokumente ganz einfach programmatisch bearbeiten.
Word- und DOCX-Dokumente bearbeiten
Laden Sie die C#-Bibliothek zur Bearbeitung von Word- und DOCX-Dokumenten herunter
Bevor Sie die Umgebung einrichten und mit dem Code beginnen, sollten Sie sicherstellen, dass Sie die folgenden Voraussetzungen erfüllen:
Visual Studio: Stellen Sie sicher, dass Sie Visual Studio auf Ihrem Rechner installiert haben. Wenn nicht, laden Sie es von der offiziellen Microsoft-Website herunter und installieren Sie es.
Microsoft Word: Da wir Microsoft Interop verwenden, sollten Sie MS Word auf Ihrem Computer installiert haben. Der Interop-Dienst bildet eine Schnittstelle zu der auf Ihrem Computer installierten Microsoft Word-Anwendung.
.NET Framework: Stellen Sie sicher, dass Ihr Visual Studio das .NET Framework unterstützt, da unsere Anwendung darauf basieren wird.
Einrichten der Umgebung
Öffnen Sie zunächst die Anwendung Visual Studio. Nach dem Öffnen werden Sie mit einem Willkommensbildschirm begrüßt.
1. Erstellen einer neuen .NET-Framework-Konsolenanwendung
Klicken Sie auf "Ein neues Projekt erstellen".
Geben Sie "Console App (.NET Framework)" in das Suchfeld ein.
Wählen Sie aus den Ergebnissen "Konsolenanwendung (.NET Framework)" aus und klicken Sie auf die Schaltfläche "Weiter".
Geben Sie Ihrem Projekt einen Namen und klicken Sie dann auf die Schaltfläche "Erstellen".
Nach diesen Schritten generiert Visual Studio eine neue .NET-Framework-Konsolenanwendung für Sie. In der Program.cs-Datei finden Sie eine grundlegende Vorlage mit einer Main-Methode, die als Einstiegspunkt für Konsolenanwendungen dient.
2. Installieren Sie Microsoft.Office.Interop.Word mit dem NuGet-Paket-Manager
NuGet ist ein Paketmanager für .NET, der in Visual Studio integriert ist. So können Sie das Paket Microsoft.Office.Interop.Word installieren:
Gehen Sie in Visual Studio in das Menü "Werkzeuge".
Wählen Sie "NuGet Package Manager" und dann "Manage NuGet Packages for Solution...".
Klicken Sie im NuGet-Fenster auf die Registerkarte "Durchsuchen".
Geben Sie im Suchfeld Microsoft.Office.Interop.Word ein und drücken Sie die Eingabetaste.
Wählen Sie aus den Suchergebnissen das Paket Microsoft.Office.Interop.Word aus.
Vergewissern Sie sich auf der rechten Seite, dass Ihr Konsolenanwendungsprojekt markiert ist, und klicken Sie dann auf die Schaltfläche "Installieren".
Visual Studio installiert nun das Paket und fügt einen Verweis darauf in Ihrem Projekt hinzu. Dieses Paket enthält die notwendigen Assemblys und Werkzeuge, um mit MS Word von Ihrer C#-Anwendung aus zu interagieren.
Einführung von IronWord: Eine überlegene Alternative zu Interop
Interop bietet zwar leistungsstarke Funktionen für die Arbeit mit Word und Excel, hat aber auch seine Grenzen. Hier kommt IronWord ins Spiel, eine vielseitige, für .NET-Entwickler optimierte Bibliothek. IronWord bietet vor allem bei der Bearbeitung von Word-Dokumenten ein reibungsloseres Arbeiten als Interop. Es gewährleistet nicht nur Kompatibilität und Leistung, sondern vereinfacht auch komplexe Aufgaben mit intuitiven Methoden. Zum leichteren Vergleich werde ich IronWord-Codeausschnitte für jeden Anwendungsfall nach MS Word bereitstellen, unter Verwendung von IronWord-Version 2024.1.2.
Vorhandenes Word-Dokument öffnen
Häufig müssen Sie bestehende Word-Dokumente bearbeiten. Das folgende Beispiel zeigt, wie Sie dies in C# tun können:
var WordApp = new Microsoft.Office.Interop.Word.Application();
var WordDoc = WordApp.Documents.Open(@"path_to_your_document.docx");
var WordApp = new Microsoft.Office.Interop.Word.Application();
var WordDoc = WordApp.Documents.Open(@"path_to_your_document.docx");
Dim WordApp = New Microsoft.Office.Interop.Word.Application()
Dim WordDoc = WordApp.Documents.Open("path_to_your_document.docx")
$vbLabelText $csharpLabel
Ersetzen Sie im obigen Code path_to_your_document.docx durch den Pfad zu Ihrer docx-Datei.
IronWord verwenden
Öffnen Sie ein Word-Dokument mit IronWord.
WordDocument doc = new WordDocument(@"path_to_your_document.docx");
WordDocument doc = new WordDocument(@"path_to_your_document.docx");
Dim doc As New WordDocument("path_to_your_document.docx")
$vbLabelText $csharpLabel
Ein neues Word-Dokument erstellen
So erstellen Sie Word-Dokumente von Grund auf neu:
var WordApp = new Microsoft.Office.Interop.Word.Application();
var WordDoc = WordApp.Documents.Add();
var WordApp = new Microsoft.Office.Interop.Word.Application();
var WordDoc = WordApp.Documents.Add();
Dim WordApp = New Microsoft.Office.Interop.Word.Application()
Dim WordDoc = WordApp.Documents.Add()
$vbLabelText $csharpLabel
Dieses Code-Snippet erstellt ein neues Word-Dokument, das Sie mit C# schreiben und bearbeiten können.
IronWord verwenden
WordDocument doc = new WordDocument();
WordDocument doc = new WordDocument();
Dim doc As New WordDocument()
$vbLabelText $csharpLabel
Verwendung von C#
Hinzufügen von Text zum Word-Dokument
So fügen Sie einen neuen Textabsatz hinzu:
WordDoc.Paragraphs.Add();
WordDoc.Paragraphs [1].Range.Text = "This is the first paragraph.";
WordDoc.Paragraphs.Add();
WordDoc.Paragraphs [1].Range.Text = "This is the first paragraph.";
WordDoc.Paragraphs.Add()
WordDoc.Paragraphs (1).Range.Text = "This is the first paragraph."
$vbLabelText $csharpLabel
Die Methode Paragraphs.Add() fügt dem Word-Dokument einen neuen Absatz hinzu, und die Eigenschaft Range.Text weist ihm neuen Text zu.
IronWord verwenden
doc.AddText("Add text using IronWord");
doc.AddText("Add text using IronWord");
doc.AddText("Add text using IronWord")
$vbLabelText $csharpLabel
Vorhandenen Text bearbeiten
Für dieses Tutorial ändern wir den ersten Absatz:
WordDoc.Paragraphs [1].Range.Text = "This is the edited first paragraph.";
WordDoc.Paragraphs [1].Range.Text = "This is the edited first paragraph.";
WordDoc.Paragraphs (1).Range.Text = "This is the edited first paragraph."
$vbLabelText $csharpLabel
Sie können auch andere Elemente im Word-Dokument mit ähnlichen Methoden hinzufügen und bearbeiten.
IronWord verwenden
doc.Paragraphs [0].TextRuns [0].Text = "This is the edited first paragraph.";
doc.Paragraphs [0].TextRuns [0].Text = "This is the edited first paragraph.";
doc.Paragraphs (0).TextRuns (0).Text = "This is the edited first paragraph."
$vbLabelText $csharpLabel
Speichern und Schließen des Dokuments
Sobald Sie die gewünschten Änderungen vorgenommen haben:
Ersetzen Sie path_where_you_want_to_save.docx durch Ihren gewünschten Pfad.
IronWord verwenden
doc.SaveAs(@"path_where_you_want_to_save.docx");
doc.SaveAs(@"path_where_you_want_to_save.docx");
doc.SaveAs("path_where_you_want_to_save.docx")
$vbLabelText $csharpLabel
Vollständiger Code und Beispiel
Fassen wir das alles zusammen. Hier finden Sie ein vollständiges Codebeispiel, das zeigt, wie Sie ein vorhandenes Word-Dokument öffnen, bearbeiten und die Änderungen speichern:
var WordApp = new Microsoft.Office.Interop.Word.Application();
// Create a new Word document
var WordDoc = WordApp.Documents.Add();
// Add new text
WordDoc.Paragraphs.Add();
WordDoc.Paragraphs [1].Range.Text = "This is the first paragraph.";
// Edit the first paragraph
WordDoc.Paragraphs [1].Range.Text = "This is the edited first paragraph.";
// Save and close
WordDoc.SaveAs(@"path_where_you_want_to_save.docx");
WordDoc.Close();
WordApp.Quit();
var WordApp = new Microsoft.Office.Interop.Word.Application();
// Create a new Word document
var WordDoc = WordApp.Documents.Add();
// Add new text
WordDoc.Paragraphs.Add();
WordDoc.Paragraphs [1].Range.Text = "This is the first paragraph.";
// Edit the first paragraph
WordDoc.Paragraphs [1].Range.Text = "This is the edited first paragraph.";
// Save and close
WordDoc.SaveAs(@"path_where_you_want_to_save.docx");
WordDoc.Close();
WordApp.Quit();
Dim WordApp = New Microsoft.Office.Interop.Word.Application()
' Create a new Word document
Dim WordDoc = WordApp.Documents.Add()
' Add new text
WordDoc.Paragraphs.Add()
WordDoc.Paragraphs (1).Range.Text = "This is the first paragraph."
' Edit the first paragraph
WordDoc.Paragraphs (1).Range.Text = "This is the edited first paragraph."
' Save and close
WordDoc.SaveAs("path_where_you_want_to_save.docx")
WordDoc.Close()
WordApp.Quit()
$vbLabelText $csharpLabel
IronWord verwenden
Das vollständige Codebeispiel im Vergleich zu MS Word. IronWord verwendet prägnante Codeschnipsel zur Bearbeitung von DOCX-Dateien.
// Create an empty Word document
WordDocument doc = new WordDocument();
// Add new text
doc.AddText("This is the first paragraph.");
// Edit text
doc.Paragraphs [0].TextRuns [0].Text = "This is the edited first paragraph.";
// Export docx
doc.SaveAs(@"path_where_you_want_to_save.docx");
// Create an empty Word document
WordDocument doc = new WordDocument();
// Add new text
doc.AddText("This is the first paragraph.");
// Edit text
doc.Paragraphs [0].TextRuns [0].Text = "This is the edited first paragraph.";
// Export docx
doc.SaveAs(@"path_where_you_want_to_save.docx");
' Create an empty Word document
Dim doc As New WordDocument()
' Add new text
doc.AddText("This is the first paragraph.")
' Edit text
doc.Paragraphs (0).TextRuns (0).Text = "This is the edited first paragraph."
' Export docx
doc.SaveAs("path_where_you_want_to_save.docx")
$vbLabelText $csharpLabel
Schlussfolgerung
Im Bereich der Bearbeitung von Word- und Excel-Dokumenten in .NET-Anwendungen gibt es eine Vielzahl von Möglichkeiten. Während die Interop-Dienste von Microsoft für viele die erste Wahl waren, bedeutet das Aufkommen von Lösungen wie IronWord eine Verlagerung hin zu effizienteren und benutzerfreundlicheren Tools.
Jordi beherrscht vor allem Python, C# und C++. Wenn er seine Fähigkeiten bei Iron Software nicht einsetzt, programmiert er Spiele. Durch seine Mitverantwortung für Produkttests, Produktentwicklung und Forschung trägt Jordi wesentlich zur kontinuierlichen Produktverbesserung bei. Die vielseitigen Erfahrungen, die er sammelt, bieten ihm immer wieder neue Herausforderungen, und er sagt, dass dies einer seiner Lieblingsaspekte bei Iron Software ist. Jordi wuchs in Miami, Florida, auf und studierte Informatik und Statistik an der University of Florida.
< PREVIOUS Wie man ein Word-Dokument in C# erstellt