Microsoft Word-Dokumente werden häufig zur Erstellung und zum Austausch von Textinhalten verwendet. Wenn Sie mit Word-Dokumenten in Ihren C#-Anwendungen arbeiten, müssen Sie möglicherweise Text aus Word-Dokumenten mit C# extrahieren und Text unter Erhalt der Formatierung extrahieren. Zum Beispiel möchten Sie den Text analysieren, bestimmte Abschnitte eines Dokuments extrahieren oder sie in einem einzigen Dokument zusammenführen. In diesem Blog werden wir untersuchen, wie man Text aus Word-Dokumenten in C# mit der besten C#-Bibliothek für die Textextraktion aus Word-Dokumenten extrahiert.
- Bibliothek zum Extrahieren von Text aus Word-Dokumenten
- Textextraktion in Word-Dokumenten
- Text aus einem Word-Dokument extrahieren
C#-Bibliothek zum Extrahieren von Text aus Word-Dokumenten
Aspose.Words für .NET ist eine funktionsreiche und benutzerfreundliche Bibliothek zur Arbeit mit Word-Dokumenten. Sie bietet eine Vielzahl von Funktionen, einschließlich .NET Textextraktion aus Word-Dokumenten, Dokumentenerstellung, -manipulation und -konvertierung. Mit Aspose.Words für .NET können Sie verschiedene Aspekte von Word-Dokumenten handhaben, was sie zu einem wertvollen Werkzeug für Entwickler macht, die nach effizienter C#-Textextraktion aus Word suchen.
Sie können die DLL herunterladen oder die Bibliothek direkt über NuGet im Paket-Manager-Toolkit installieren.
PM> Install-Package Aspose.Words
Extrahieren von Text aus Word-Dokumenten
Ein MS Word-Dokument besteht aus verschiedenen Elementen, die Absätze, Tabellen, Bilder usw. umfassen. Daher könnten die Anforderungen an die Textextraktion je nach Szenario variieren. Sie müssen möglicherweise Text aus gescannten Word-Dokumenten C# extrahieren oder Text aus Word-Dateien C# .NET extrahieren. Jeder Knotentyp in einem Word-Dokument wird als Knoten dargestellt. Daher müssen Sie zur Verarbeitung eines Dokuments mit Knoten interagieren. Lassen Sie uns beginnen und sehen, wie wir Text aus Word-Dokumenten in verschiedenen Szenarien extrahieren können, während wir sicherstellen, dass wir die Word-Formatierung bei der Textextraktion in C# effektiv handhaben.
Text aus einem Word-DOC in C# extrahieren
In diesem Abschnitt werden wir einen C#-Text-Extractor für Word-Dokumente implementieren, und der Ablauf der Textextraktion wäre wie folgt:
- Zunächst definieren wir die Knoten, die wir in den Textextraktionsprozess einbeziehen möchten.
- Dann extrahieren wir den Inhalt zwischen den angegebenen Knoten (einschließlich oder Ausschluss der Anfangs- und Endknoten).
- Schließlich verwenden wir eine Klonierung der extrahierten Knoten, z.B. um ein neues Word-Dokument zu erstellen, das aus dem extrahierten Inhalt besteht.
Lassen Sie uns jetzt eine Methode namens ExtractContent schreiben, der wir die Knoten und einige andere Parameter übergeben, um die Textextraktion durchzuführen. Diese Methode analysiert das Dokument und klont die Knoten. Die folgenden Parameter werden wir an diese Methode übergeben:
- StartNode und EndNode als Anfangs- und Endpunkte für die Extraktion des Inhalts, jeweils. Diese können sowohl Block- als auch Inline-Knoten sein (z.B. Paragraph, Table, Run, FieldStart, BookmarkStart usw.).
- Um ein Feld zu übergeben, sollten Sie das entsprechende FieldStart-Objekt übergeben.
- Um Lesezeichen zu übergeben, sollten die Knoten BookmarkStart und BookmarkEnd übergeben werden.
- Für Kommentare sollten die Knoten CommentRangeStart und CommentRangeEnd verwendet werden.
- IsInclusive definiert, ob die Marker in die Extraktion einbezogen werden oder nicht. Wenn diese Option auf false gesetzt ist und derselbe Knoten oder aufeinanderfolgende Knoten übergeben werden, wird eine leere Liste zurückgegeben.
Die folgende ist die vollständige Implementierung der Methode ExtractContent, die den Inhalt zwischen den übergebenen Knoten extrahiert und dabei genau Text aus dem geschützten Word-Dokument C# extrahiert.
Einige Hilfsmethoden sind ebenfalls erforderlich, die von der Methode ExtractContent benötigt werden, um die Textextraktion durchzuführen, die unten angegeben sind.
Jetzt sind wir bereit, diese Methoden zu nutzen und Text aus einem Word-Dokument mit C# zu extrahieren.
Text zwischen Absätzen eines Word-Dokuments extrahieren
Sehen wir uns an, wie wir den Inhalt zwischen zwei Absätzen in einem Word-DOCX-Dokument extrahieren können. Die folgenden Schritte führen diesen Vorgang in C# aus.
- Zuerst laden wir das Word-Dokument mit der Document-Klasse.
- Holen Sie sich Referenzen zu den Anfangs- und Endabsätzen in zwei Objekten mit der Methode Document.FirstSection.Body.GetChild(NodeType.PARAGRAPH, int, boolean).
- Rufen Sie die Methode ExtractContent(startPara, endPara, true) auf, um die Knoten in ein Objekt zu extrahieren.
- Rufen Sie die Hilfsmethode GenerateDocument(Document, extractedNodes) auf, um ein Dokument zu erstellen, das aus dem extrahierten Inhalt besteht.
- Schließlich speichern wir das zurückgegebene Dokument mit der Methode Document.Save(string).
Das folgende Codebeispiel zeigt, wie man effizient Text aus großen Word-Dateien extrahiert, indem der Text zwischen dem 7. und 11. Absatz in einem Word-Dokument in C# extrahiert wird.
Text zwischen verschiedenen Knotentypen extrahieren
Sie können auch den Inhalt zwischen verschiedenen Knotentypen extrahieren. Zum Demonstrieren wollen wir den Inhalt zwischen einem Absatz und einer Tabelle extrahieren und in einem neuen Word-Dokument speichern. Die folgenden Schritte führen diesen Vorgang aus.
- Laden Sie das Word-Dokument mit der Document-Klasse.
- Holen Sie sich Referenzen zu den Anfangs- und Endknoten in zwei Objekten mit der Methode Document.FirstSection.Body.GetChild(NodeType, int, boolean).
- Rufen Sie die Methode ExtractContent(startPara, endPara, true) auf, um die Knoten in ein Objekt zu extrahieren.
- Rufen Sie die Hilfsmethode GenerateDocument(Document, extractedNodes) auf, um ein Dokument zu erstellen, das aus dem extrahierten Inhalt besteht.
- Speichern Sie das zurückgegebene Dokument mit der Methode Document.Save(string).
Das folgende Codebeispiel zeigt, wie man Text zwischen einem Absatz und einer Tabelle in C# extrahiert.
Text zwischen Absätzen basierend auf Stilen extrahieren
Sehen wir uns nun an, wie wir Inhalte zwischen Absätzen basierend auf Stilen extrahieren können. Zu Demonstrationszwecken wollen wir den Inhalt zwischen dem ersten “Überschrift 1” und der ersten “Überschrift 3” im Word-Dokument extrahieren. Die folgenden Schritte demonstrieren, wie man dies in C# erreicht.
- Zuerst laden wir das Word-Dokument mit der Document-Klasse.
- Extrahieren Sie Absätze in ein Objekt mit der Hilfsmethode ParagraphsByStyleName(Document, “Heading 1”).
- Extrahieren Sie Absätze in ein anderes Objekt mit der Hilfsmethode ParagraphsByStyleName(Document, “Heading 3”).
- Rufen Sie die Methode ExtractContent(startPara, endPara, true) auf und übergeben Sie die ersten Elemente in beiden Absatz-Arrays als erste und zweite Parameter.
- Rufen Sie die Hilfsmethode GenerateDocument(Document, extractedNodes) auf, um ein Dokument zu erstellen, das aus dem extrahierten Inhalt besteht.
- Schließlich speichern wir das zurückgegebene Dokument mit der Methode Document.Save(string).
Das folgende Codebeispiel zeigt, wie man Inhalte zwischen Absätzen basierend auf Stilen extrahiert.
Erfahren Sie mehr über die Textextraktion
Sie können andere Szenarien der .NET-API zur Textextraktion aus Word-Dokumenten in diesen Dokumentationartikel erkunden.
Kostenlose Word-Textextrahierungsbibliothek erhalten
Sie können eine kostenlose Testlizenz erhalten, um Text ohne Evaluierungseinschränkungen zu extrahieren.
Fazit
Aspose.Words für .NET ist eine vielseitige Bibliothek, die den Prozess der C# Textextraktion aus Word unter Erhalt der Formatierung vereinfacht. Mit ihren umfangreichen Funktionen und der benutzerfreundlichen API können Sie effizient mit Word-Dokumenten arbeiten und verschiedene Szenarien zur Handhabung von Sonderzeichen während der C#-Textextraktion aus Word automatisieren. Egal, ob Sie Anwendungen entwickeln, die Word-Dokumente verarbeiten müssen, oder einfach nur Text extrahieren, Aspose.Words für .NET ist ein wertvolles Werkzeug für Entwickler.
Sie können weitere Funktionen von Aspose.Words für .NET in der Dokumentation erkunden. Wenn Sie Fragen haben, lassen Sie es uns bitte über unser Forum wissen.
Siehe auch
- Erstellen von Word-Dokumenten in C# ohne MS Office
- Generieren von Word-Dokumenten aus Vorlagen in C# .NET
Tipp: Sie möchten möglicherweise den Aspose PowerPoint zu Word Konverter überprüfen, da er den beliebten Prozess der Konvertierung von Präsentationen in Word-Dokumente demonstriert.