Extract Text from MS Word Documents in C#

Microsoft Word-dokument är en grundpelare för att skapa och dela textinnehåll. Om du utvecklar C#-applikationer som interagerar med dessa dokument kan du behöva extrahera text från dem. Detta kan vara för syften som textanalys eller för att extrahera specifika avsnitt av ett dokument för att sammanställa dem i ett nytt. I det här blogginlägget kommer vi att dyka ner i metoder för att extrahera text från Word-dokument i C#.

Innehållsförteckning

C#-bibliotek för textutvinning

Aspose.Words for .NET är ett kraftfullt och användarvänligt bibliotek designat för att arbeta med Word-dokument. Det erbjuder en omfattande uppsättning funktioner, inklusive textutvinning, dokumentskapande, manipulering och konvertering. Med Aspose.Words for .NET kan utvecklare effektivt hantera olika aspekter av Word-dokument, vilket gör det till ett ovärderligt verktyg för dina utvecklingsbehov.

För att komma igång, ladda ner biblioteket eller installera det direkt från NuGet med följande kommando i paketmanagerkonsolen:

PM> Install-Package Aspose.Words

Förstå textutvinning i Word-dokument

Ett MS Word-dokument består av olika element såsom stycken, tabeller och bilder. Därför kan kraven för textutvinning variera beroende på det specifika användningsfallet. Du kan behöva extrahera text mellan stycken, bokmärken, kommentarer och mer.

Varje element i ett Word-dokument representeras som en nod. Därför, för att effektivt bearbeta ett dokument, måste du arbeta med dessa noder. Låt oss utforska hur man extraherar text från Word-dokument i olika scenarier.

Steg-för-steg-guide för att extrahera text från ett Word-dokument

I det här avsnittet kommer vi att implementera en C# textutdragare för Word-dokument. Arbetsflödet för textutvinning kommer att involvera följande steg:

  1. Definiera noderna som ska inkluderas i utvinningsprocessen.
  2. Extrahera innehållet mellan de angivna noderna (inklusive eller exklusive start- och slutnoder).
  3. Använd de klonade extraherade noderna för att skapa ett nytt Word-dokument som innehåller det extraherade innehållet.

Låt oss skapa en metod som heter ExtractContent som kommer att ta emot noder och andra parametrar för att utföra textutvinningen. Denna metod kommer att parsa dokumentet och klona noderna baserat på följande parametrar:

  • StartNode och EndNode: Dessa definierar start- och slutpunkterna för innehållsutvinning. De kan vara blocknivå (t.ex. Paragraph, Table) eller inline-noder (t.ex. Run, FieldStart, BookmarkStart).
    • För fält, skicka det motsvarande FieldStart-objektet.
    • För bokmärken, använd BookmarkStart och BookmarkEnd-noder.
    • För kommentarer, använd CommentRangeStart och CommentRangeEnd-noder.
  • IsInclusive: Denna parameter avgör om markörerna inkluderas i utvinningen. Om den är inställd på false och samma eller på varandra följande noder tillhandahålls, returneras en tom lista.

Här är den fullständiga implementeringen av ExtractContent-metoden för att extrahera innehåll mellan de angivna noderna:

Dessutom krävs några hjälpfunktioner av ExtractContent-metoden för att underlätta textutvinningsoperationen:

Nu när vi har våra metoder klara kan vi gå vidare och extrahera text från ett Word-dokument.

Extrahera text mellan stycken i ett Word-dokument

För att extrahera innehåll mellan två stycken i ett Word DOCX-dokument, följ dessa steg:

  1. Ladda Word-dokumentet med Document-klassen.
  2. Få referenser till de startande och avslutande styckena med metoden Document.FirstSection.Body.GetChild(NodeType.PARAGRAPH, int, boolean).
  3. Anropa ExtractContent(startPara, endPara, True)-metoden för att extrahera noderna till ett objekt.
  4. Använd hjälpfunktionen GenerateDocument(Document, extractedNodes) för att skapa ett dokument med det extraherade innehållet.
  5. Spara det nya dokumentet med metoden Document.Save(string).

Här är ett kodexempel som demonstrerar hur man extraherar text mellan det 7:e och 11:e stycket i ett Word-dokument:

Extrahera text mellan olika typer av noder

Du kan också extrahera innehåll mellan olika typer av noder. Till exempel, låt oss extrahera innehåll mellan ett stycke och en tabell och spara det i ett nytt Word-dokument. Stegen är som följer:

  1. Ladda Word-dokumentet med Document-klassen.
  2. Få referenser till start- och slutnoderna med metoden Document.FirstSection.Body.GetChild(NodeType, int, boolean).
  3. Anropa ExtractContent(startPara, endPara, True) för att extrahera noderna till ett objekt.
  4. Använd hjälpfunktionen GenerateDocument(Document, extractedNodes) för att skapa ett dokument med det extraherade innehållet.
  5. Spara det nya dokumentet med Document.Save(string).

Här är kodexemplet för att extrahera text mellan ett stycke och en tabell i C#:

Extrahera text baserat på stilar

För att extrahera innehåll mellan stycken baserat på stilar, följ dessa steg. För denna demonstration kommer vi att extrahera innehåll mellan den första “Rubrik 1” och den första “Rubrik 3” i Word-dokumentet:

  1. Ladda Word-dokumentet med Document-klassen.
  2. Extrahera stycken till ett objekt med hjälp av hjälpfunktionen ParagraphsByStyleName(Document, “Heading 1”).
  3. Extrahera stycken till ett annat objekt med ParagraphsByStyleName(Document, “Heading 3”).
  4. Anropa ExtractContent(startPara, endPara, True) med de första elementen från båda styckena.
  5. Använd hjälpfunktionen GenerateDocument(Document, extractedNodes) för att skapa ett dokument med det extraherade innehållet.
  6. Spara det nya dokumentet med Document.Save(string).

Här är ett kodexempel för att extrahera innehåll mellan stycken baserat på stilar:

Läs mer om textutvinning

Utforska ytterligare scenarier för att extrahera text från Word-dokument genom denna dokumentationsartikel.

Få ett gratis bibliotek för textutvinning från Word

Du kan få en gratis tillfällig licens för att extrahera text utan utvärderingsbegränsningar.

Slutsats

Aspose.Words for .NET är ett mångsidigt bibliotek som effektiviserar processen för att extrahera text från Word-dokument i C#. Med sina omfattande funktioner och användarvänliga API kan du effektivt arbeta med Word-dokument och automatisera olika textutvinningsscenarier. Oavsett om du utvecklar applikationer som kräver bearbetning av Word-dokument eller helt enkelt extraherar text, är Aspose.Words for .NET ett viktigt verktyg för utvecklare.

För att utforska fler funktioner i Aspose.Words for .NET, kolla in dokumentationen. Om du har några frågor, tveka inte att kontakta oss via vårt forum.

Se även

Tips: Du kanske vill kolla in Aspose PowerPoint till Word Converter, som demonstrerar den populära processen att konvertera presentationer till Word-dokument.