Estrai testo dai documenti MS Word in C#

I documenti Microsoft Word sono un elemento fondamentale per creare e condividere contenuti testuali. Se stai sviluppando applicazioni C# che interagiscono con questi documenti, potresti trovarti nella necessità di estrarre testo da essi. Questo potrebbe essere per scopi come analisi del testo o estrazione di sezioni specifiche di un documento da compilare in uno nuovo. In questo post del blog, ci immergeremo nei metodi per estrarre testo dai documenti Word in C#.

Indice

Libreria C# per l’estrazione di testo

Aspose.Words per .NET è una libreria potente e facile da usare progettata per lavorare con documenti Word. Fornisce un set completo di funzionalità, inclusa l’estrazione di testo, creazione, manipolazione e conversione di documenti. Con Aspose.Words per .NET, gli sviluppatori possono gestire in modo efficace vari aspetti dei documenti Word, rendendolo uno strumento prezioso per le tue esigenze di sviluppo.

Per iniziare, scarica la libreria o installala direttamente da NuGet utilizzando il seguente comando nella console del gestore pacchetti:

PM> Install-Package Aspose.Words

Comprendere l’estrazione di testo nei documenti Word

Un documento MS Word è composto da vari elementi come paragrafi, tabelle e immagini. Di conseguenza, i requisiti per l’estrazione di testo possono variare in base al caso d’uso specifico. Potresti dover estrarre testo tra paragrafi, segnalibri, commenti e altro.

Ogni elemento in un documento Word è rappresentato come un nodo. Pertanto, per elaborare efficacemente un documento, sarà necessario lavorare con questi nodi. Esploriamo come estrarre testo dai documenti Word in diversi scenari.

Guida passo-passo per estrarre testo da un documento Word

In questa sezione, implementeremo un estrattore di testo C# per documenti Word. Il flusso di lavoro per l’estrazione di testo comporterà i seguenti passaggi:

  1. Definire i nodi da includere nel processo di estrazione.
  2. Estrarre il contenuto tra i nodi specificati (includendo o escludendo i nodi di inizio e fine).
  3. Utilizzare i nodi estratti clonati per creare un nuovo documento Word contenente il contenuto estratto.

Creiamo un metodo chiamato ExtractContent che accetterà nodi e altri parametri per eseguire l’estrazione del testo. Questo metodo analizzerà il documento e clonerà i nodi in base ai seguenti parametri:

  • StartNode e EndNode: Questi definiscono i punti di inizio e fine per l’estrazione del contenuto. Possono essere nodi di livello blocco (ad es. Paragraph, Table) o nodi di livello inline (ad es. Run, FieldStart, BookmarkStart).
    • Per i campi, passare l’oggetto FieldStart corrispondente.
    • Per i segnalibri, utilizzare i nodi BookmarkStart e BookmarkEnd.
    • Per i commenti, impiegare i nodi CommentRangeStart e CommentRangeEnd.
  • IsInclusive: Questo parametro determina se i marcatori sono inclusi nell’estrazione. Se impostato su false e vengono forniti gli stessi nodi o nodi consecutivi, verrà restituita una lista vuota.

Ecco l’implementazione completa del metodo ExtractContent per estrarre contenuto tra i nodi specificati:

Inoltre, alcuni metodi di supporto sono richiesti dal metodo ExtractContent per facilitare l’operazione di estrazione del testo:

Ora che abbiamo i nostri metodi pronti, possiamo procedere ad estrarre testo da un documento Word.

Estrazione di testo tra paragrafi di un documento Word

Per estrarre contenuto tra due paragrafi in un documento Word DOCX, segui questi passaggi:

  1. Carica il documento Word utilizzando la classe Document.
  2. Ottieni riferimenti ai paragrafi di inizio e fine utilizzando il metodo Document.FirstSection.Body.GetChild(NodeType.PARAGRAPH, int, boolean).
  3. Chiama il metodo ExtractContent(startPara, endPara, True) per estrarre i nodi in un oggetto.
  4. Utilizza il metodo di supporto GenerateDocument(Document, extractedNodes) per creare un documento con il contenuto estratto.
  5. Salva il nuovo documento utilizzando il metodo Document.Save(string).

Ecco un esempio di codice che dimostra come estrarre testo tra il 7° e l'11° paragrafo in un documento Word:

Estrazione di testo tra diversi tipi di nodi

Puoi anche estrarre contenuto tra diversi tipi di nodi. Ad esempio, estraiamo contenuto tra un paragrafo e una tabella e salviamolo in un nuovo documento Word. I passaggi sono i seguenti:

  1. Carica il documento Word utilizzando la classe Document.
  2. Ottieni riferimenti ai nodi di inizio e fine utilizzando il metodo Document.FirstSection.Body.GetChild(NodeType, int, boolean).
  3. Chiama ExtractContent(startPara, endPara, True) per estrarre i nodi in un oggetto.
  4. Utilizza il metodo di supporto GenerateDocument(Document, extractedNodes) per creare un documento con il contenuto estratto.
  5. Salva il nuovo documento utilizzando Document.Save(string).

Ecco l’esempio di codice per estrarre testo tra un paragrafo e una tabella in C#:

Estrazione di testo basata su stili

Per estrarre contenuto tra paragrafi basati su stili, segui questi passaggi. Per questa dimostrazione, estrarremo contenuto tra il primo “Heading 1” e il primo “Heading 3” nel documento Word:

  1. Carica il documento Word utilizzando la classe Document.
  2. Estrai i paragrafi in un oggetto utilizzando il metodo di supporto ParagraphsByStyleName(Document, “Heading 1”).
  3. Estrai i paragrafi in un altro oggetto utilizzando ParagraphsByStyleName(Document, “Heading 3”).
  4. Chiama ExtractContent(startPara, endPara, True) con i primi elementi di entrambi gli array di paragrafi.
  5. Utilizza il metodo di supporto GenerateDocument(Document, extractedNodes) per creare un documento con il contenuto estratto.
  6. Salva il nuovo documento utilizzando Document.Save(string).

Ecco un esempio di codice per estrarre contenuto tra paragrafi basati su stili:

Scopri di più sull’estrazione di testo

Esplora scenari aggiuntivi per l’estrazione di testo dai documenti Word attraverso questo articolo di documentazione.

Ottieni una libreria gratuita per l’estrazione di testo da Word

Puoi ottenere una licenza temporanea gratuita per estrarre testo senza limitazioni di valutazione.

Conclusione

Aspose.Words per .NET è una libreria versatile che semplifica il processo di estrazione di testo dai documenti Word in C#. Con le sue ampie funzionalità e API facile da usare, puoi lavorare in modo efficiente con i documenti Word e automatizzare vari scenari di estrazione di testo. Che tu stia sviluppando applicazioni che richiedono l’elaborazione di documenti Word o semplicemente estraendo testo, Aspose.Words per .NET è uno strumento essenziale per gli sviluppatori.

Per esplorare ulteriori funzionalità di Aspose.Words per .NET, dai un’occhiata alla documentazione. Se hai domande, non esitare a contattarci tramite il nostro forum.

Vedi anche

Suggerimento: Potresti voler dare un’occhiata al convertitore Aspose PowerPoint in Word, che dimostra il popolare processo di conversione di presentazioni in documenti Word.