Zum Fußzeileninhalt springen
IRONWORD VERWENDEN

Wie man ein Word-Dokument mit C# bearbeitet

Microsoft hat Word erstellt, um als Textverarbeitungsprogramm zu dienen. Ursprünglich unter dem Namen Multi-Tool Word für Xenix-Systeme verfügbar, wurde es am 25. Oktober 1983 eingeführt. Nachfolgende Versionen wurden für eine Vielzahl von Betriebssystemen entwickelt, wie SCO Unix (1990), Microsoft Windows (1989), Atari ST (1988), OS/2 (1989), AT&T UNIX PC (1985), IBM PCs mit DOS (1983), Apple Macintosh mit dem klassischen macOS (1985), macOS (2001), Webbrowser (2010), iOS (2014) und Android (2015). Wine kann verwendet werden, um ältere Versionen von Microsoft Word unter Linux auszuführen.

Kommerzielle Word-Versionen können als eigenständige Anwendung oder als Bestandteil von Microsoft 365 lizenziert werden, die entweder als dauerhafte Lizenz oder als Teil eines Microsoft 365-Abonnements erworben werden können. In diesem Artikel werden wir Word-Dokumente mit C# mithilfe von Microsoft Interop Assemblies manipulieren und erkunden, wie IronXL uns hilft, Excel-Dokumente zu bearbeiten.

Wie man Word-Dokumente mit C# manipuliert

  1. Erstellen Sie ein brandneues Visual Studio-Projekt.
  2. Richten Sie die notwendige Bibliothek ein, um Word-Dokumente zu lesen.
  3. Um ein Word-Dokument zu manipulieren, laden Sie eine bestehende Datei oder erstellen Sie eine neue Datei.
  4. Bearbeiten Sie die Dokumentdaten und parsen Sie die Datei.
  5. Entfernen Sie alle erstellten Objekte.

Was ist Microsoft Interop

Mit C# oder VB.NET geschriebene Programme können Word-Dokumente (DOC, DOCX und RTF) mit Office Interoperability für Microsoft Word erstellen oder öffnen. Es gibt jedoch viele Nachteile bei der Verwendung in Projekten.

In diesem Artikel werden wir häufige Probleme besprechen, die bei der Verwendung von Microsoft Office Interop (Word Automation) mit C# oder VB.NET auftreten können.

Zum Beispiel:

  • Jeder Client-PC, der für die Word-Automatisierung benötigt wird, muss für Microsoft Word lizenziert sein.
  • Auf jedem Client-PC muss die gleiche Version von Microsoft Word installiert sein.
  • Word verwendet einige Megabyte RAM, um im Hintergrund verschiedene Dateien und DLLs zu laden, wenn Automatisierung eingesetzt wird.
  • Die Microsoft Word API wird über ein COM-Objekt aufgerufen. Probleme können auftreten, wenn man ein COM-Objekt aus verwaltetem Code aufruft, wie Typkonvertierungen, die eine COM-Hülle erfordern, und eine schlechte Integration mit dem .NET Framework.

Erstellen eines neuen Projekts in Visual Studio

Es ist notwendig, Visual Studio zu starten und ein .NET-Projekt zu erstellen, bevor man die Interop-Bibliothek verwendet. Visual Studio ist mit jeder Version kompatibel, obwohl die neueste empfohlen wird. Abhängig von Ihren Anforderungen können Sie entweder ein Projekt-Template oder eine Anwendung entwickeln, die Windows Forms ähnelt. In diesem Fall werde ich die Konsolenanwendung der Einfachheit halber nutzen.

Wie man ein Word-Dokument mit C# manipuliert: Abbildung 1 - Erstellen eines neuen Visual Studio-Projekts

Projekt-Details konfigurieren

Geben Sie als nächstes den Speicherort und den Namen des Projekts an.

Wie man ein Word-Dokument mit C# manipuliert: Abbildung 2 - Konfigurieren des neuen VS-Projekts

Erstellen Sie eine neue Projektdatei mit dem .NET Framework

Mit dem Framework-Dropdown-Menü können Sie ein .NET Framework wählen. Das Dot.NET Framework 4.7 wird für dieses Projekt genutzt. Der nächste Schritt ist, den "Erstellen"-Button zu drücken.

Nachdem die Anwendung die Lösung generiert hat, können Sie den Code eingeben und das Programm durch den Zugriff auf die Program.cs-Datei erstellen oder ausführen.

Wie man ein Word-Dokument mit C# manipuliert: Abbildung 3 - Neue .NET-Projekt-.cs-Datei

Jetzt, da die Microsoft.Office.Interop.Word-Bibliothek hinzugefügt wurde, können wir den Code testen.

Installieren der Interop-Bibliothek

Die nächste Reparatur erfordert die Installation der Interop-Bibliothek. Zum Erreichen dessen geben Sie den folgenden Befehl in der NuGet-Paketmanager-Konsole ein:

Install-Package Microsoft.Office.Interop.Word

Wie man ein Word-Dokument mit C# manipuliert: Abbildung 4 - Um die IronXL-Bibliothek zu installieren, können Sie die Paketmanager-Konsole verwenden und den angegebenen Befehl eingeben: Install-Package IronXL.Excel

Eine andere Möglichkeit, das Paket "Interop" zu finden, ist die Nutzung des NuGet-Paketmanagers. Unter allen NuGet-Paketen, die mit Interop zusammenhängen, können wir das benötigte Paket zum Herunterladen aus dieser Liste auswählen.

Wie man ein Word-Dokument mit C# manipuliert: Abbildung 5 - Auswählen der `Microsoft.Office.Interop.Word`-Bibliothek

Sobald Sie alle erforderlichen Bibliotheken installiert haben, können Sie mit dem Bearbeiten von DOCX-Dateien beginnen.

Bearbeiten bestehender Word-Dokumente mit Interop

Um Microsoft Word zu nutzen, müssen Sie zunächst eine Instanz von Microsoft.Office.Interop.Word.Application erstellen. In dieser Instanz würde die Kommunikation von Word-Dokumenten stattfinden. Der nächste Schritt besteht darin, eine neue Word-Dokument-Instanz mit der Documents-Eigenschaft der gerade erstellten Microsoft.Office.Interop.Word.Application-Instanz zu erstellen. Wie im unten stehenden C#-Codeauszug zu sehen ist, können wir dadurch Word-Dokumente programmgesteuert manipulieren:

using System;
using Microsoft.Office.Interop.Word;

class Program
{
    static void Main()
    {
        try
        {
            // Create a new instance of Word Application
            var WordApp = new Microsoft.Office.Interop.Word.Application();
            // Open an existing document
            var WordDoc = WordApp.Documents.Open(@"d:/Demo.docx");
            // Edit the content of the first paragraph
            WordDoc.Paragraphs[1].Range.Text = "New text here...";
            // Save the edited document
            WordDoc.SaveAs(@"d:/NewDemo.docx");
            // Close the document
            WordDoc.Close();
            // Quit the Word application
            WordApp.Quit();
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.ToString());
        }
    }
}
using System;
using Microsoft.Office.Interop.Word;

class Program
{
    static void Main()
    {
        try
        {
            // Create a new instance of Word Application
            var WordApp = new Microsoft.Office.Interop.Word.Application();
            // Open an existing document
            var WordDoc = WordApp.Documents.Open(@"d:/Demo.docx");
            // Edit the content of the first paragraph
            WordDoc.Paragraphs[1].Range.Text = "New text here...";
            // Save the edited document
            WordDoc.SaveAs(@"d:/NewDemo.docx");
            // Close the document
            WordDoc.Close();
            // Quit the Word application
            WordApp.Quit();
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.ToString());
        }
    }
}
Imports System
Imports Microsoft.Office.Interop.Word

Friend Class Program
	Shared Sub Main()
		Try
			' Create a new instance of Word Application
			Dim WordApp = New Microsoft.Office.Interop.Word.Application()
			' Open an existing document
			Dim WordDoc = WordApp.Documents.Open("d:/Demo.docx")
			' Edit the content of the first paragraph
			WordDoc.Paragraphs(1).Range.Text = "New text here..."
			' Save the edited document
			WordDoc.SaveAs("d:/NewDemo.docx")
			' Close the document
			WordDoc.Close()
			' Quit the Word application
			WordApp.Quit()
		Catch ex As Exception
			Console.WriteLine(ex.ToString())
		End Try
	End Sub
End Class
$vbLabelText   $csharpLabel

Im obigen Code können wir das Word-Dokument in C# bearbeiten. Zuerst erstellen wir eine Instanz der Word-Anwendung mit Interop. Die Methode Open wird dann verwendet, um eine bestehende Word-Datei zu öffnen und sie in ein Dokumentobjekt zu konvertieren. Anschließend können wir auf die verschiedenen verfügbaren Eigenschaften und Methoden zum Interagieren mit dem Dokument zugreifen. Im Beispiel aktualisieren wir den Text des ersten Absatzes und verwenden dabei die Paragraphs-Sammlung und einen Index, um festzulegen, welcher Absatz bearbeitet wird. Schließlich werden die Änderungen mit SaveAs gespeichert und das Dokument sowie die Anwendung ordnungsgemäß geschlossen.

IronXL-Bibliotheksalternative zu Interop

IronXL ist eine Alternative zu Microsoft Interop, die in .NET-Programmen verwendet werden kann, um Excel-Dateien zu bearbeiten. Während Microsoft Interop eine Interaktion mit Excel über die Interop-Assemblies erfordert, bietet IronXL eine einfachere, effektivere und leistungsfähigere Methode für die programmgesteuerte Manipulation von Excel-Dateien in .NET-Umgebungen.

Die Nutzung von IronXL anstelle von Microsoft Interop hat mehrere Vorteile wie:

  • Leistung und Ressourceneffizienz: Im Vergleich zu Microsoft Interop, das darauf angewiesen ist, dass die Excel-Anwendung auf dem Computer installiert ist, performt IronXL besser und benötigt weniger Ressourcen, da es nicht von der Excel-Anwendung abhängig ist.
  • Benutzerfreundlichkeit und Einfachheit: IronXL bietet eine benutzerfreundlichere API, die das Lesen, Schreiben und Manipulieren von Excel-Dateien ohne die Komplikationen, die mit Microsoft Interop verbunden sind, vereinfacht.
  • Kompatibilität und Abhängigkeit: IronXL beseitigt Abhängigkeiten und Kompatibilitätsprobleme, die bei verschiedenen Versionen von Excel oder Office auftreten können, indem es nicht erforderlich ist, Microsoft Excel auf dem Computer zu installieren.
  • Plattformunabhängigkeit: Im Gegensatz zu Microsoft Interop, das möglicherweise enger mit bestimmten Microsoft Office-Versionen verbunden ist, bietet IronXL größere Flexibilität und einfachere Bereitstellung über verschiedene Umgebungen und Plattformen hinweg.

Für .NET-Entwickler, die mit Excel-Dateien programmgesteuert arbeiten müssen, ist IronXL oft eine bessere Wahl aufgrund seiner Benutzerfreundlichkeit, Geschwindigkeit und geringeren Abhängigkeit von Drittanbietersoftware-Installationen. Die Entscheidung zwischen IronXL und Microsoft Interop kann jedoch von den spezifischen Projektanforderungen, der bestehenden Infrastruktur und dem Erfahrungsstand des Benutzers mit jeder Bibliothek abhängen.

Berücksichtigen Sie immer die Anforderungen Ihrer Anwendung, wenn Sie zwischen diesen Optionen wählen. Schauen Sie sich diesen Link an, um mehr über die IronXL-Bibliothek zu erfahren.

Installation der IronXL-Bibliothek

Da die IronXL-Bibliothek für den kommenden Patch benötigt wird, installieren Sie sie. Öffnen Sie dazu die NuGet-Paketmanager-Konsole und geben Sie den folgenden Befehl ein:

Install-Package IronWord

Wie man ein Word-Dokument mit C# manipuliert: Abbildung 6 - Installieren von IronXL mit dem Konsolenbefehl

Die Suche nach dem Paket "IronXL" über den NuGet-Paketmanager ist eine zusätzliche Option. Aus dieser Liste aller mit IronXL verbundenen NuGet-Pakete können wir das benötigte zur Installation auswählen.

Wie man ein Word-Dokument mit C# manipuliert: Abbildung 7 - Installation des `IronXL.Excel`-Pakets über das Browsen

Bearbeiten von Excel-Dokumenten mit IronXL

Daten können mit nur wenigen Zeilen Code in die Formate XLSX oder XLS exportiert werden. Das folgende Beispiel eines Quellcodes zeigt, wie Daten aus einer Excel-Datei in ein einfaches tabellarisches Tabellenformat exportiert werden können:

using IronXL;

class Program
{
    static void Main()
    {
        // Load an existing Excel file
        var workbook = WorkBook.Load("Demo file.xlsx");
        // Access the first sheet or the sheet by name
        var ws = workbook.GetWorkSheet("Sheet1");
        // Read a value from a cell and output it to the console
        string address_val = ws["A1"].ToString();
        Console.WriteLine(address_val);
        // Modify a cell's value
        ws["A2"].Value = "Hello World";
        // Save the workbook to different formats
        workbook.SaveAs("export.xlsx");
        workbook.SaveAs("export.xls");
        workbook.WorkSheets[0].SaveAs("export.xls");
    }
}
using IronXL;

class Program
{
    static void Main()
    {
        // Load an existing Excel file
        var workbook = WorkBook.Load("Demo file.xlsx");
        // Access the first sheet or the sheet by name
        var ws = workbook.GetWorkSheet("Sheet1");
        // Read a value from a cell and output it to the console
        string address_val = ws["A1"].ToString();
        Console.WriteLine(address_val);
        // Modify a cell's value
        ws["A2"].Value = "Hello World";
        // Save the workbook to different formats
        workbook.SaveAs("export.xlsx");
        workbook.SaveAs("export.xls");
        workbook.WorkSheets[0].SaveAs("export.xls");
    }
}
Imports IronXL

Friend Class Program
	Shared Sub Main()
		' Load an existing Excel file
		Dim workbook = WorkBook.Load("Demo file.xlsx")
		' Access the first sheet or the sheet by name
		Dim ws = workbook.GetWorkSheet("Sheet1")
		' Read a value from a cell and output it to the console
		Dim address_val As String = ws("A1").ToString()
		Console.WriteLine(address_val)
		' Modify a cell's value
		ws("A2").Value = "Hello World"
		' Save the workbook to different formats
		workbook.SaveAs("export.xlsx")
		workbook.SaveAs("export.xls")
		workbook.WorkSheets(0).SaveAs("export.xls")
	End Sub
End Class
$vbLabelText   $csharpLabel

Das vorherige Beispiel lädt eine bereits vorhandene Excel-Datei, indem die Load-Funktion aufgerufen wird, die ein Argument für den Dateipfad und -namen erhält. Der Import der Datei in das WorkBook-Objekt ist nun abgeschlossen. Die Excel-Arbeitsblätter werden dann mit Hilfe von GetWorkSheet geladen, was es uns ermöglicht, das Arbeitsblatt mithilfe des Blattnamens zu laden. Die Excel-Adresse wurde dann verwendet, um den Wert zu lesen. Um mehr über das Lesen von Excel-Dateien zu erfahren, klicken Sie hier.

Wir können die Werte des Excel-Blatts ändern, indem wir die gleiche Excel-Adresse verwenden. Das Excel-Dokument kann als XLSX- oder XLS-Datei gespeichert werden, indem die von dem WorkBook-Objekt bereitgestellte Funktion SaveAs genutzt wird. Mit diesem Verfahren wird die gesamte Datei im gewählten Format gespeichert.

Wie man ein Word-Dokument mit C# manipuliert: Abbildung 8 - Konsolenausgabe

Darüber hinaus können wir ein bestimmtes Excel-Arbeitsblatt auswählen, indem wir seinen Indexwert verwenden oder es namentlich zum Bezug nehmen. Dann können wir die Daten von der Excel-Tabelle in eine andere Datei exportieren, indem wir die Option SaveAs verwenden. Klicken Sie auf diesen Link, um mehr über das Formatieren und Exportieren von Excel-Dateien zu erfahren.

Abschluss

Eines der beliebtesten Add-ons für Excel ist IronXL. Es ist nicht auf zusätzliche externe Bibliotheken angewiesen. Es ist nicht notwendig, Microsoft Excel zu installieren, da es eigenständig ist. Es arbeitet über eine Vielzahl von Kanälen. Dies steht im Gegensatz zur Interop-Bibliothek, die die Datei durch zusätzliche Bibliotheken parsen muss, um Word-Dokumente zu bearbeiten.

Eine umfassende Lösung für alle Programmierprozesse unter Einsatz von Microsoft Excel-Dokumenten ist IronXL. Berechnungen, Sortieren von Zeichenfolgen oder Zahlen, Beschneiden, Hinzufügen, Suchen und Ersetzen, Zusammenführen und Entzerren sowie Dateispeicherung sind nur einige der vielen verfügbaren Operationen. Nicht nur können Tabellendaten validiert werden, sondern Sie können auch neue Formen von Zelldaten konstruieren. Es erleichtert das Lesen und Schreiben von Dateien sowie die Handhabung von Excel-Daten.

Als IronXL zuerst veröffentlicht wurde, kostete es $799. Alternativ können Kunden sich für eine einjährige Abonnementgebühr entscheiden, um Software-Updates und Support zu erhalten. Für eine Gebühr bietet IronXL Schutz gegen unbefugte Weiterverteilung. Besuchen Sie die IronXL-Lizenzseite hier. Um mehr über die Produkte von Iron Software zu erfahren, klicken Sie hier.

Häufig gestellte Fragen

Wie kann ich Word-Dokumente mit C# manipulieren?

Um Word-Dokumente mit C# zu manipulieren, können Sie die Microsoft.Office.Interop.Word-Bibliothek verwenden. Dies beinhaltet das Erstellen einer Instanz der Word-Anwendung, das Öffnen des Dokuments, das Vornehmen von Änderungen und das programmgesteuerte Speichern des Dokuments.

Was sind die Einschränkungen bei der Verwendung von Microsoft Interop zur Manipulation von Word-Dokumenten?

Die Einschränkungen der Verwendung von Microsoft Interop umfassen die Notwendigkeit einer lizenzierten Version von Microsoft Word auf jedem Client-PC, potenzielle Probleme mit der Versionskompatibilität und einen erhöhten Speicherverbrauch aufgrund von Hintergrundprozessen.

Wie kann ich ein C#-Projekt in Visual Studio einrichten, um mit Word-Dokumenten zu arbeiten?

In Visual Studio können Sie ein neues Projekt einrichten, indem Sie eine Konsolenanwendung auswählen, die erforderlichen Projektdetails konfigurieren und sicherstellen, dass die richtige .NET Framework-Version ausgewählt ist. Sie müssen dann Verweise zu Microsoft.Office.Interop.Word über den NuGet-Paketmanager hinzufügen.

Was sind die Unterschiede zwischen IronXL und Microsoft Interop beim Umgang mit Excel-Dateien?

IronXL bietet Vorteile gegenüber Microsoft Interop, wie z.B. die Notwendigkeit keiner Excel-Installation, eine bessere Leistung und eine einfachere API zur Manipulation von Excel-Dateien. Es beseitigt auch die Kompatibilitätsprobleme, die mit der Interop-Methode verbunden sind.

Wie kann ich IronXL in meinem .NET-Projekt installieren?

Um IronXL in Ihrem .NET-Projekt zu installieren, öffnen Sie die NuGet-Paketmanager-Konsole in Visual Studio und führen Sie den Befehl Install-Package IronXL.Excel aus. Sie können IronXL auch im NuGet-Paketmanager suchen und direkt installieren.

Wie bearbeite ich Excel-Dokumente mit IronXL in C#?

Mit IronXL können Sie Excel-Dokumente bearbeiten, indem Sie sie mit WorkBook.Load laden, auf bestimmte Arbeitsblätter zugreifen, Zellwerte ändern und die Arbeitsmappe mit den von den WorkBook- und WorkSheet-Objekten bereitgestellten Methoden speichern.

Welche Vorteile bietet die Verwendung von IronXL für die Manipulation von Excel-Dateien?

IronXL bietet Vorteile wie verbesserte Leistung, Benutzerfreundlichkeit und Plattformunabhängigkeit. Eine Installation von Excel ist nicht erforderlich, was Abhängigkeitsprobleme beseitigt und eine nahtlose Integration in .NET-Anwendungen ermöglicht.

Kann ich Word-Dokumentaufgaben automatisieren, ohne Microsoft Interop zu verwenden?

Ja, verschiedene Drittanbieter-Bibliotheken bieten Alternativen zu Microsoft Interop zur Automatisierung von Word-Dokumentaufgaben, bieten einfachere APIs und beseitigen die Notwendigkeit einer Microsoft Word-Installation.

Jordi Bardia
Software Ingenieur
Jordi ist am besten in Python, C# und C++ versiert. Wenn er nicht bei Iron Software seine Fähigkeiten einsetzt, programmiert er Spiele. Mit Verantwortung für Produkttests, Produktentwicklung und -forschung trägt Jordi mit immensem Wert zur kontinuierlichen Produktverbesserung bei. Die abwechslungsreiche Erfahrung hält ihn gefordert und engagiert, ...
Weiterlesen