Questo articolo illustra vari approcci per trovare e sostituire il testo nei documenti di Word usando C# nelle applicazioni .NET o .NET Core.

Trova e sostituisci è una funzionalità piuttosto utile di MS Word per individuare e sostituire rapidamente il testo desiderato nei documenti. Diventa più pratico e fa risparmiare tempo quando si lavora con documenti più lunghi. Nei casi in cui devi trovare e sostituire il testo in centinaia di documenti Word o devi automatizzare questo processo, sceglierai sicuramente di farlo a livello di codice. Quindi, in questo articolo, ti mostrerò come trovare e sostituire il testo nei documenti di Word a livello di codice in diversi scenari usando C#. Dopo aver letto questo articolo, sarai in grado di:

Libreria C# per trovare e sostituire il testo in un documento di Word

Innanzitutto, crea un nuovo progetto C# (Console, ASP.NET e così via) in Visual Studio e installa Aspose.Words for .NET tramite NuGet Package Manager o Package Manager Console.

Installazione tramite Gestione pacchetti NuGet

Trovare e sostituire il testo in Word DOC

Installazione tramite Package Manager Console

PM> Install-Package Aspose.Words

Dopo aver installato Aspose.Words per .NET, iniziamo ora a trovare e sostituire il testo nel seguente documento di Word.

c# trova e sostituisci il testo nel documento di Word

Trova e sostituisci testo nei documenti di Word in C#

Di seguito sono riportati i passaggi per trovare e sostituire un testo particolare in un documento di Word utilizzando Aspose.Words per .NET.

La classe FindReplaceOptions fornisce varie opzioni per personalizzare le operazioni di ricerca/sostituzione. Nell’esempio di codice seguente viene illustrato come trovare e sostituire una parola o una stringa particolare in un documento di Word usando C#.

// Carica un documento Word docx
Document doc = new Document("document.docx");
// Trova e sostituisci il testo nel documento
doc.Range.Replace("sad", "[replaced]", new FindReplaceOptions(FindReplaceDirection.Forward));
// Salva il documento di Word
doc.Save("Find-And-Replace-Text.docx");

Produzione

trova il testo nel documento di Word usando c#

Trova e sostituisci parole simili nei documenti di Word usando C#

Puoi anche personalizzare l’API per trovare parole simili e sostituirle con una parola particolare. Ad esempio, puoi trovare le parole “triste” e “matto” e sostituirle con una sola parola. L’esempio di codice seguente mostra come trovare e sostituire parole simili nel documento di Word usando C#.

// Carica un documento Word docx
Document doc = new Document("document.docx");
FindReplaceOptions options = new FindReplaceOptions();
options.MatchCase = true; 
// Trova e sostituisci il testo nel documento
doc.Range.Replace(new Regex("[B|S|M]ad"), "[replaced]", options);
// Salva il documento di Word
doc.Save("Find-And-Replace-Multiple-Words.docx");

Produzione

c# sostituisce il testo nel file docx

Trova e sostituisci testo usando Regex in C#

Potrebbe verificarsi il caso in cui desideri trovare e sostituire il testo che appare in uno schema particolare. Ad esempio, è necessario nascondere/sostituire tutti gli ID e-mail in un documento Word. In questi casi, puoi creare un’espressione regolare per gli ID e-mail e passarla al metodo Document.Range.Replace(Regex, string, FindReplaceOptions).

L’esempio di codice seguente mostra come trovare e sostituire il testo in base a un modello nel documento di Word.

// Carica un documento Word docx
Document doc = new Document("document.docx");
FindReplaceOptions options = new FindReplaceOptions();
options.FindWholeWordsOnly = true; 
// Imposta l'espressione regolare per gli ID e-mail 
Regex EmailRegex = new Regex(@"[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?");
// Trova e sostituisci il testo nel documento
doc.Range.Replace(EmailRegex, "[replaced]", options);
// Salva il documento di Word
doc.Save("Find-And-Replace-Text-Using-Regex.docx");

Produzione

come sostituire il testo in un documento word

Puoi anche trovare e sostituire il testo nelle sezioni di intestazione o piè di pagina di un documento di Word usando la classe HeaderFooter. A questo scopo viene utilizzato il metodo HeaderFooter.Range.Replace(string, string, FindReplaceOptions). Nell’esempio di codice seguente viene illustrato come sostituire il testo nell’intestazione/piè di pagina del documento di Word in C#.

// Carica un documento Word
Document doc = new Document("document.docx");
// Accedi all'intestazione/piè di pagina del documento di Word
HeaderFooterCollection headersFooters = doc.FirstSection.HeadersFooters;
HeaderFooter footer = headersFooters[HeaderFooterType.FooterPrimary];
// Imposta opzioni
FindReplaceOptions options = new FindReplaceOptions
{
	MatchCase = false,
	FindWholeWordsOnly = false
};
// Sostituisci il testo nel piè di pagina del documento di Word
footer.Range.Replace("This is footer of the document.", "Copyright (C) 2020 by Aspose Pty Ltd.", options);
// Salva il documento di Word
doc.Save("Find-And-Replace-Text-in-Footer.docx");

Produzione

Ricerca e sostituzione di documenti di Word in C#.NET

Trova e sostituisci testo con metacaratteri nei documenti di Word usando C#

Potrebbe verificarsi uno scenario in cui un particolare testo o frase è composto da più paragrafi, sezioni o pagine. In questi casi, il semplice metodo trova e sostituisci non funzionerebbe in modo efficace e dovremo gestire le interruzioni di paragrafo, di sezione o di pagina. Per questo, Aspose.Words ti consente di utilizzare i seguenti meta-caratteri nella stringa di ricerca o nella stringa di sostituzione:

  • &p: interruzione di paragrafo
  • &b: interruzione di sezione
  • &m: interruzione di pagina
  • &l: interruzione di riga

Nell’esempio di codice seguente viene illustrato come trovare e sostituire il testo con un’interruzione di paragrafo in un documento di Word.

// Carica un documento Word docx
Document doc = new Document("document.docx"); 
// Imposta opzioni 
FindReplaceOptions options = new FindReplaceOptions
{
	MatchCase = false,
	FindWholeWordsOnly = false
};
// Sostituisci il testo con un'interruzione di paragrafo
doc.Range.Replace("First paragraph ends.&pSecond paragraph starts.", "[replaced]", options);
// Salva il documento di Word
doc.Save("Find-And-Replace-Text-Paragraph-Break.docx");

Produzione

trova e sostituisci il testo usando l'espressione regolare C#

Conclusione

Questo articolo illustra alcuni modi utili per trovare e sostituire il testo in un documento di Word in base a parole, frasi e modelli regex corrispondenti o simili a livello di codice. Queste funzionalità non solo automatizzano il processo di sostituzione del testo, ma consentono di risparmiare molto tempo e fatica nell’operazione di ricerca e sostituzione manuale nei documenti di Word. Puoi saperne di più sulla libreria di parole di Aspose usando documentazione.

Articoli Correlati

Suggerimento: potresti essere interessato a un Convertitore da testo a GIF gratuito che ti consente di generare animazioni dai testi.