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:
- trova e sostituisci il testo in Word DOC/DOCX usando C#
- trova e sostituisci parole simili nel documento di Word
- trova e sostituisci il testo usando Regex
- trova e sostituisci il testo nell’intestazione/piè di pagina del documento di Word
- trova e sostituisci il testo con metacaratteri nel documento di Word
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
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.
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.
- Crea un’istanza della classe Document e inizializza con il percorso del documento di Word.
- Trova e sostituisci il testo usando il metodo Document.Range.Replace(string, string, FindReplaceOptions).
- Salva il documento usando il metodo Document.Save(string).
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 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
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
Trova e sostituisci testo nell’intestazione/piè di pagina del documento di Word usando C#
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
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
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
- Trova e sostituisci testo nei documenti di Word utilizzando Java
- Automazione di .NET Word: crea documenti RTF in C#
Suggerimento: potresti essere interessato a un Convertitore da testo a GIF gratuito che ti consente di generare animazioni dai testi.