Text aus MS Word-Dokumenten in C# extrahieren

Microsoft Word-Dokumente sind ein Grundpfeiler für die Erstellung und den Austausch von Textinhalten. Wenn Sie C#-Anwendungen entwickeln, die mit Word-Dokumenten interagieren, müssen Sie möglicherweise Text aus Word-Dokumenten mit C# extrahieren in ASP.NET, während die Formatierung beibehalten wird. Egal, ob Sie Text analysieren, spezifische Abschnitte extrahieren oder Inhalte in ein einzelnes Dokument zusammenfassen möchten, dieser Leitfaden zeigt Ihnen, wie Sie effizient Text aus Word-Dokumenten mit der besten C#-Bibliothek für die Textextraktion aus Word-Dokumenten extrahieren.

Inhaltsverzeichnis

C#-Bibliothek zur Textextraktion aus Word-Dokumenten

Aspose.Words für .NET ist eine funktionsreiche, benutzerfreundliche Bibliothek, die für die Arbeit mit Word-Dokumenten entwickelt wurde. Sie bietet eine umfassende Palette an Funktionalitäten, einschließlich .NET-Textextraktion aus Word-Dokumenten, Dokumentenerstellung, -manipulation und -konvertierung. Aspose.Words für .NET ist ein unverzichtbares Werkzeug für Entwickler, die effiziente C#-Textextraktion aus Word suchen.

Sie können die DLL herunterladen oder die Bibliothek direkt über NuGet mit der Paket-Manager-Konsole installieren:

PM> Install-Package Aspose.Words

Verständnis der Textextraktion in Word-Dokumenten

Ein MS Word-Dokument besteht aus verschiedenen Elementen, wie Absätzen, Tabellen und Bildern. Folglich können die Anforderungen an die Textextraktion je nach Szenario unterschiedlich sein. Beispielsweise müssen Sie möglicherweise Text aus einem gescannten Word-Dokument in C# extrahieren oder Text aus einer Word-Datei mit C# .NET extrahieren. Jedes Element in einem Word-Dokument wird als Knoten dargestellt, mit dem Sie während des Extraktionsprozesses interagieren. Lassen Sie uns erkunden, wie Sie Text aus Word-Dokumenten extrahieren können, während Sie effektiv die Word-Formatierung während der Textextraktion in C# behandeln.

Text aus einem Word-Dokument extrahieren

In diesem Abschnitt werden wir einen C#-Textextraktor für Word-Dokumente implementieren. Der Workflow für die Textextraktion umfasst:

  1. Definieren der Knoten, die in den Textextraktionsprozess einbezogen werden sollen.
  2. Extrahieren des Inhalts zwischen den angegebenen Knoten (einschließlich oder Ausschluss der Start- und Endknoten).
  3. Klonen der extrahierten Knoten, um ein neues Word-Dokument mit dem extrahierten Inhalt zu erstellen.

Lassen Sie uns eine Methode namens ExtractContent erstellen, die die Knoten und andere Parameter für die Textextraktion akzeptiert. Diese Methode wird das Dokument analysieren und die Knoten klonen. Hier sind die Parameter, die wir der Methode übergeben werden:

  1. StartNode und EndNode dienen als Start- und Endpunkte für die Inhaltsextraktion. Diese können Blockebene (z.B. Paragraph, Table) oder Inline-Ebene Knoten (z.B. Run, FieldStart, BookmarkStart, usw.) sein.
    • Für Felder übergeben Sie das entsprechende FieldStart-Objekt.
    • Für Lesezeichen verwenden Sie BookmarkStart- und BookmarkEnd-Knoten.
    • Für Kommentare nutzen Sie CommentRangeStart- und CommentRangeEnd-Knoten.
  2. IsInclusive gibt an, ob die Marker in der Extraktion enthalten sind. Wenn auf false gesetzt und die gleichen oder aufeinanderfolgenden Knoten übergeben werden, wird eine leere Liste zurückgegeben.

Die vollständige Implementierung der Methode ExtractContent, die genau Text aus geschützten Word-Dokumenten in C# extrahiert, ist wie folgt:

Zusätzlich sind einige Hilfsmethoden erforderlich, die von der Methode ExtractContent benötigt werden, um die Textextraktion durchzuführen:

Jetzt sind wir bereit, diese Methoden zu nutzen und Text aus Word-Dokumenten mit C# zu extrahieren.

Text zwischen Absätzen eines Word-Dokuments extrahieren

Um Inhalte zwischen zwei Absätzen in einem Word-DOCX-Dokument zu extrahieren, befolgen Sie diese Schritte:

  1. Laden Sie das Word-Dokument mit der Document-Klasse.
  2. Referenzieren Sie die Start- und Endabsätze mit der Methode Document.FirstSection.Body.GetChild(NodeType.PARAGRAPH, int, boolean).
  3. Rufen Sie die Methode ExtractContent(startPara, endPara, true) auf, um die Knoten in ein Objekt zu extrahieren.
  4. Verwenden Sie die Hilfsmethode GenerateDocument(Document, extractedNodes), um ein Dokument mit dem extrahierten Inhalt zu erstellen.
  5. Speichern Sie schließlich das zurückgegebene Dokument mit der Methode Document.Save(string).

Hier ist ein Codebeispiel, das zeigt, wie man Text aus großen Word-Dateien extrahiert, indem man den Inhalt zwischen dem 7. und 11. Absatz extrahiert:

Text zwischen verschiedenen Knotentypen extrahieren

Sie können auch Inhalte zwischen verschiedenen Knotentypen extrahieren. Zum Beispiel, lassen Sie uns Inhalte zwischen einem Absatz und einer Tabelle extrahieren und in ein neues Word-Dokument speichern. Befolgen Sie diese Schritte:

  1. Laden Sie das Word-Dokument mit der Document-Klasse.
  2. Referenzieren Sie die Start- und Endknoten mit der Methode Document.FirstSection.Body.GetChild(NodeType, int, boolean).
  3. Rufen Sie die Methode ExtractContent(startPara, endPara, true) auf, um die Knoten in ein Objekt zu extrahieren.
  4. Verwenden Sie die Hilfsmethode GenerateDocument(Document, extractedNodes), um ein Dokument mit dem extrahierten Inhalt zu erstellen.
  5. Speichern Sie das zurückgegebene Dokument mit der Methode Document.Save(string).

Hier ist ein Codebeispiel, das zeigt, wie man Text zwischen einem Absatz und einer Tabelle in C# extrahiert:

Text zwischen Absätzen basierend auf Stilen extrahieren

Lassen Sie uns nun erkunden, wie man Inhalte zwischen Absätzen basierend auf Stilen extrahiert. In diesem Beispiel werden wir Inhalte zwischen dem ersten “Überschrift 1” und der ersten “Überschrift 3” im Word-Dokument extrahieren. Befolgen Sie diese Schritte:

  1. Laden Sie das Word-Dokument mit der Document-Klasse.
  2. Extrahieren Sie Absätze in ein Objekt mit der Hilfsmethode ParagraphsByStyleName(Document, “Heading 1”).
  3. Extrahieren Sie Absätze in ein anderes Objekt mit der Hilfsmethode ParagraphsByStyleName(Document, “Heading 3”).
  4. Rufen Sie die Methode ExtractContent(startPara, endPara, true) auf und übergeben Sie die ersten Elemente in beiden Absatzarrays als Parameter.
  5. Verwenden Sie die Hilfsmethode GenerateDocument(Document, extractedNodes), um ein Dokument mit dem extrahierten Inhalt zu erstellen.
  6. Speichern Sie schließlich das zurückgegebene Dokument mit der Methode Document.Save(string).

Hier ist ein Codebeispiel, das zeigt, wie man Inhalte zwischen Absätzen basierend auf Stilen extrahiert:

Weitere Informationen zur Textextraktion

Erforschen Sie andere Szenarien der .NET-API zur Textextraktion aus Word-Dokumenten in diesem Dokumentationsartikel.

Kostenlose Word-Textextraktorbibliothek erhalten

Sie können eine kostenlose temporäre Lizenz erhalten, um Text ohne Bewertungseinschränkungen zu extrahieren.

Fazit

Aspose.Words für .NET ist eine vielseitige Bibliothek, die den Prozess des C#-Extrahierens von Text aus Word unter Beibehaltung der Formatierung vereinfacht. Mit seinen umfangreichen Funktionen und der benutzerfreundlichen API können Sie effizient mit Word-Dokumenten arbeiten und verschiedene Szenarien automatisieren, die den Umgang mit Sonderzeichen während der C#-Textextraktion aus Word betreffen. 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.

Entdecken Sie weitere Funktionen von Aspose.Words für .NET in der Dokumentation. Wenn Sie Fragen haben, können Sie sich gerne über unser Forum an uns wenden.

Siehe auch

Tipp: Sie möchten vielleicht auch den Aspose PowerPoint zu Word Konverter überprüfen, der den beliebten Prozess der Präsentation-zu-Word-Dokument-Konvertierung demonstriert.