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");
Microsoft hat Word als Textverarbeitungsprogramm entwickelt. Ursprünglich unter dem Namen Multi-Tool Word für Xenix-Systeme verfügbar, wurde es am 25. Oktober 1983 vorgestellt. Nachfolgende Versionen wurden für eine Vielzahl von Betriebssystemen entwickelt, wie z.B. SCO Unix (1990), Microsoft Windows (1989), Atari ST (1988), OS/2 (1989), AT&T UNIX PC (1985), IBM PCs mit DOS (1983), Apple Macintosh, der das klassische macOS ausführt (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 Teil von Microsoft 365 lizenziert werden, die entweder als unbefristete Lizenz oder als Teil eines Microsoft 365-Abonnements erworben werden können. In diesem Artikel werden wir Word-Dokumente mit Hilfe von Microsoft Interop-Assemblies in C# bearbeiten und untersuchen, wie IronXL uns bei der Bearbeitung von Excel-Dokumenten hilft.
Manipulation von Word-Dokumenten mit C#
Erstellen Sie ein brandneues Visual Studio-Projekt.
Richten Sie die notwendige Bibliothek zum Lesen von Word-Dokumenten ein.
Um ein Word-Dokument zu bearbeiten, laden Sie eine vorhandene Datei oder erstellen Sie eine neue Datei.
Bearbeiten Sie die Dokumentdaten und analysieren Sie die Datei.
Beseitigen Sie alle erstellten Objekte.
Was ist Microsoft Interop?
Programme, die in C# oder VB.NET geschrieben sind, können Word-Dokumente (DOC, DOCX und RTF) mit Office Interoperabilität für Microsoft Word erstellen oder öffnen. Bei der Verwendung in Projekten hat es jedoch eine Reihe von Nachteilen.
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 Textautomatisierung benötigt wird, muss für Microsoft Word lizenziert sein.
Auf allen Kunden-PCs muss die gleiche Version von Microsoft Word installiert sein.
Word verwendet einige Megabyte RAM, um verschiedene Dateien und DLLs im Hintergrund zu laden, wenn die Automatisierung genutzt wird.
Der Zugriff auf Microsoft Word API erfolgt über ein COM-Objekt. Beim Aufruf eines COM-Objekts aus verwaltetem Code können Probleme auftreten, z. B. Typkonvertierungen, die Notwendigkeit eines COM-Wrappers und eine schlechte Integration des .NET-Frameworks.
Erstellen eines neuen Projekts in Visual Studio
Es ist notwendig, Visual Studio zu starten und ein .NET-Projekt zu erstellen, bevor Sie die Interop-Bibliothek verwenden. Visual Studio ist mit jeder Version kompatibel, es wird jedoch empfohlen, die neueste Version zu verwenden. Je nach Ihren Bedürfnissen können Sie entweder eine Projektvorlage oder eine Anwendung entwickeln, die Windows Forms ähnelt. Der Einfachheit halber werde ich in diesem Fall die Konsolenanwendung verwenden.
Projektdetails konfigurieren
Geben Sie dann den Ort und den Namen des Projekts an.
Erstellen einer neuen Projektdatei mit dem .NET-Framework
Mithilfe des Dropdown-Menüs "Framework" können Sie ein .NET Framework auswählen. Für dieses Projekt wird das Dot.NET-Framework 4.7 verwendet. Als nächstes müssen Sie auf die Schaltfläche "Erstellen" klicken.
Nachdem die Anwendung die Lösung erstellt hat, können Sie den Code eingeben und das Programm erstellen oder ausführen, indem Sie auf die Datei Program.cs zugreifen.
Nun, da die Microsoft.Office.Interop.Word-Bibliothek hinzugefügt wurde, können wir den Code testen.
Interop-Bibliothek installieren
Für die nächste Reparatur muss die Interop-Bibliothek installiert werden. Geben Sie dazu den folgenden Befehl in der NuGet Package Manager Console ein:
Eine andere Möglichkeit, das Paket "Interop" zu finden, ist die Verwendung des NuGet Package Manager. Unter allen NuGet-Paketen, die mit Interop zu tun haben, können wir das gewünschte Paket zum Herunterladen aus dieser Liste auswählen.
Sobald Sie alle erforderlichen Bibliotheken installiert haben, können Sie mit der Bearbeitung von DOCX-Dateien beginnen.
Vorhandene Word-Dokumente mit Interop manipulieren
Um Microsoft Word zu verwenden, müssen Sie zuerst eine Instanz von Microsoft.Office.Interop.Word.Application erstellen. In diesem Fall würde die Übermittlung von Word-Dokumenten erfolgen. Der nächste Schritt besteht darin, eine neue Word-Dokumentinstanz zu erstellen, indem Sie die Documents-Eigenschaft der zuvor erstellten Instanz von Microsoft.Office.Interop.Word.Application verwenden. Wie im folgenden C#-Codeauszug zu sehen ist, können wir damit Word-Dokumente programmatisch bearbeiten
using System;
using System.Data;
using Microsoft.Office.Interop.Word;
try
{
var WordApp = new Microsoft.Office.Interop.Word.Application();
var WordDoc = WordApp.Documents.Open(@"d:/Demo.docx");
WordDoc.Paragraphs [1].Range.Text = "New text here...";
WordDoc.SaveAs(@"d:/NewDemo.docx");
WordDoc.Close();
WordApp.Quit();
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
using System;
using System.Data;
using Microsoft.Office.Interop.Word;
try
{
var WordApp = new Microsoft.Office.Interop.Word.Application();
var WordDoc = WordApp.Documents.Open(@"d:/Demo.docx");
WordDoc.Paragraphs [1].Range.Text = "New text here...";
WordDoc.SaveAs(@"d:/NewDemo.docx");
WordDoc.Close();
WordApp.Quit();
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
Imports System
Imports System.Data
Imports Microsoft.Office.Interop.Word
Try
Dim WordApp = New Microsoft.Office.Interop.Word.Application()
Dim WordDoc = WordApp.Documents.Open("d:/Demo.docx")
WordDoc.Paragraphs (1).Range.Text = "New text here..."
WordDoc.SaveAs("d:/NewDemo.docx")
WordDoc.Close()
WordApp.Quit()
Catch ex As Exception
Console.WriteLine(ex.ToString())
End Try
$vbLabelText $csharpLabel
Mit dem obigen Code können wir das Word-Dokument in C# bearbeiten. Zunächst erstellen wir ein Objekt für das Textverarbeitungsprogramm, das Interop verwendet. Mit Hilfe des erstellten Objekts, das über eine Open-Methode verfügt, können wir den Namen der vorhandenen Word-Datei übergeben. Es hilft uns bei der Umwandlung der Datei in ein Dokumentobjekt.
Durch die Verwendung des Dokumentobjekts können wir alle verfügbaren Prozesse in Bezug auf das vorhandene Word-Dokument abrufen. Mit Hilfe des Absatzobjekts erhalten wir dann den gesamten Inhalt der DOCX-Dateien. Mit Hilfe des Arrays können wir den Text eines jeden Absatzes durch die spezifischen Absätze ersetzen, indem wir sie im Array übergeben. Anschließend können wir sie in neuen MS Word-Dokumenten als DOCX-Datei speichern. Wir können Word-Dokumente auch mit Hilfe von Interop erstellen.
IronXL-Bibliothek als Alternative zu Interop
IronXL ist eine Alternative zu Microsoft Interop, die in .NET-Programmen verwendet werden kann, um Excel-Dateien zu verarbeiten. Während Microsoft Interop die Interaktion mit Excel über die Interop-Assemblies erfordert, bietet IronXL eine einfachere, effektivere und leistungsfähigere Methode zur programmatischen Bearbeitung von Excel-Dateien im .NET-Kontext.
Die Verwendung von IronXL anstelle von Microsoft Interop hat mehrere Vorteile, wie zum Beispiel:
Leistung und Ressourceneffizienz: Im Vergleich zu Microsoft Interop, das von der auf dem Computer installierten Excel-Anwendung abhängt, ist IronXL leistungsfähiger und verbraucht weniger Ressourcen, da es nicht von der Excel-Anwendung abhängig ist.
Benutzerfreundlichkeit und Einfachheit: IronXL bietet eine benutzerfreundliche API, die das Lesen, Schreiben und Bearbeiten von Excel-Dateien vereinfacht, ohne die Komplikationen, die mit Microsoft Interop einhergehen.
Kompatibilität und Abhängigkeiten: IronXL beseitigt Abhängigkeiten und Kompatibilitätsprobleme, die bei verschiedenen Versionen von Excel oder Office auftreten können, da keine Installation von Microsoft Excel auf dem Computer erforderlich ist.
Plattformunabhängigkeit: Im Gegensatz zu Microsoft Interop, das eher an bestimmte Microsoft Office-Versionen gebunden ist, bietet IronXL mehr Flexibilität und eine einfache Bereitstellung in verschiedenen Umgebungen und auf verschiedenen Plattformen.
Für .NET-Entwickler, die mit Excel-Dateien programmatisch arbeiten müssen, ist IronXL aufgrund seiner Benutzerfreundlichkeit, Geschwindigkeit und geringeren Abhängigkeit von Softwareinstallationen Dritter häufig die bessere Wahl. Die Entscheidung zwischen IronXL und Microsoft Interop könnte jedoch von den Besonderheiten des Projekts, der bereits vorhandenen Infrastruktur und den Kenntnissen des Benutzers über die jeweilige Bibliothek beeinflusst werden.
Bei der Entscheidung zwischen diesen Optionen sollten Sie immer die Anforderungen Ihrer Anwendung im Auge behalten. Besuchen Sie diesen Link, 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 Package Manager Console und geben Sie den folgenden Befehl ein:
Install-Package IronWord
Die Suche nach dem Paket "IronXL" über den NuGet Package Manager ist eine weitere Möglichkeit. Aus dieser Liste aller NuGet-Pakete, die mit IronXL verknüpft sind, können wir das Paket auswählen, das wir herunterladen möchten.
Bearbeitung von Excel-Dokumenten mit IronXL
Die Daten können mit wenigen Zeilen Code in die Formate.XLSX oder.XLS exportiert werden. Das folgende Beispiel für Quellcode zeigt, wie Daten aus einer Excel-Datei in ein einfaches Tabellenformat exportiert werden können:
Dim workbook = IronXL.WorkBook.LoadExcel("Demo file.xlsx")
Dim ws As WorkSheet = workbook.GetWorkSheet("Sheet1")
Dim address_val As String = ws ("A1").ToString()
console.writeline(address_val)
ws ("A2").Value = "Hello World"
workbook.SaveAs("export.xlsx")
'or
workbook.SaveAs("export.xls")
'or
workbook.WorkSheets (0).SaveAs("export.xls")
$vbLabelText $csharpLabel
Das vorherige Beispiel lädt eine Excel-Datei, die bereits existiert, indem die LoadExcel-Funktion aufgerufen wird, die ein Argument für den Dateipfad und Namen entgegennimmt. Der Import der Datei in das Workbook-Objekt ist nun abgeschlossen. Die Excel-Arbeitsblätter werden dann mit Hilfe von GetWorkSheet geladen, wodurch wir das Arbeitsblatt über den Blattnamen laden können. 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-Blattes ändern, indem wir die gleiche Excel-URL verwenden. Das Excel-Dokument kann als XLSX- oder XLS-Datei gespeichert werden, indem die SaveAs-Funktion des 'Workbook'-Objekts verwendet wird. Bei diesem Verfahren wird die gesamte Datei in dem gewählten Format gespeichert.
Außerdem können wir ein bestimmtes Excel-Arbeitsblatt auswählen, indem wir seinen Indexwert verwenden oder indem wir uns auf seinen Namen beziehen. Als nächstes können wir die Daten aus der Excel-Tabelle in eine andere Datei exportieren, indem wir die SaveAs-Option verwenden. Klicken Sie auf diesen Link, um mehr über das Formatieren und Exportieren von Excel-Dateien zu erfahren.
Schlussfolgerung
Eines der beliebtesten Add-ons für Excel ist IronXL. Sie ist nicht auf zusätzliche externe Bibliotheken angewiesen. Es ist nicht notwendig, Microsoft Excel zu installieren, da es in sich geschlossen ist. Sie arbeitet über eine Vielzahl von Kanälen. Dies steht im Gegensatz zur Interop-Bibliothek, die die Datei mithilfe zusätzlicher Bibliotheken analysieren muss, um Word-Dokumente zu bearbeiten.
IronXL ist eine Komplettlösung für jeden Programmierprozess, der Microsoft Excel-Dokumente verwendet. Berechnungen, Sortieren von Zeichenketten oder Zahlen, Ausschneiden, Hinzufügen, Suchen und Ersetzen, Zusammenführen und Aufheben des Zusammenführens sowie Speichern von Dateien sind nur einige der vielen verfügbaren Operationen. Tabellenkalkulationsdaten können nicht nur validiert werden, sondern Sie können auch neue Formen von Zelldaten konstruieren. Es erleichtert das Lesen und Schreiben von Dateien sowie den Umgang mit Excel-Daten.
Bei der ersten Veröffentlichung von IronXL kostete es $749. Alternativ können die Kunden eine einjährige Abonnementgebühr zahlen, um Software-Updates und Support zu erhalten. IronXL bietet gegen eine Gebühr Sicherheit gegen unerlaubte Weiterverbreitung. Besuchen Sie die IronXL-Lizenzierungsseite hier. Um mehr über die Produkte von Iron Software zu erfahren, klicken Sie hier.
Chaknith arbeitet an IronXL und IronBarcode. Er hat tiefgehende Expertise in C# und .NET und hilft, die Software zu verbessern und Kunden zu unterstützen. Seine Erkenntnisse aus Benutzerinteraktionen tragen zu besseren Produkten, Dokumentation und einem insgesamt besseren Erlebnis bei.