Este artigo aborda várias abordagens para localizar e substituir texto em documentos do Word usando C# em aplicativos .NET ou .NET Core.

Localizar e substituir é um recurso bastante útil do MS Word para localizar e substituir rapidamente o texto desejado nos documentos. Torna-se mais prático e economiza tempo quando você está trabalhando com documentos mais longos. Nos casos em que você precisar localizar e substituir texto em centenas de documentos do Word ou precisar automatizar esse processo, você definitivamente optará por fazê-lo programaticamente. Portanto, neste artigo, mostrarei como localizar e substituir texto em documentos do Word programaticamente em diferentes cenários usando C#. Depois de ler este artigo, você será capaz de:

Biblioteca C# para localizar e substituir texto em um documento do Word

Em primeiro lugar, crie um novo projeto C# (Console, ASP.NET, etc.) no Visual Studio e instale Aspose.Words for .NET via NuGet Package Manager ou Package Manager Console.

Instalando pelo Gerenciador de Pacotes NuGet

Localizando e substituindo texto no Word DOC

Instalando pelo Console do Gerenciador de Pacotes

PM> Install-Package Aspose.Words

Depois de instalar o Aspose.Words para .NET, vamos começar a localizar e substituir o texto no documento do Word a seguir.

c# localizar e substituir texto no documento do word

Localizar e substituir texto em documentos do Word em C#

A seguir estão as etapas para localizar e substituir um texto específico em um documento do Word usando o Aspose.Words para .NET.

A classe FindReplaceOptions fornece várias opções para personalizar as operações de localizar/substituir. O exemplo de código a seguir mostra como localizar e substituir uma determinada palavra ou cadeia de caracteres em um documento do Word usando C#.

// Carregar um documento docx do Word
Document doc = new Document("document.docx");
// Localizar e substituir texto no documento
doc.Range.Replace("sad", "[replaced]", new FindReplaceOptions(FindReplaceDirection.Forward));
// Salve o documento do Word
doc.Save("Find-And-Replace-Text.docx");

Resultado

encontrar texto no documento do word usando C#

Localizar e substituir palavras semelhantes em documentos do Word usando C#

Você também pode personalizar a API para encontrar palavras semelhantes e substituí-las por uma palavra específica. Por exemplo, você pode encontrar as palavras “triste” e “louco” e substituí-las por uma única palavra. O exemplo de código a seguir mostra como localizar e substituir palavras semelhantes no documento do Word usando C#.

// Carregar um documento docx do Word
Document doc = new Document("document.docx");
FindReplaceOptions options = new FindReplaceOptions();
options.MatchCase = true; 
// Localizar e substituir texto no documento
doc.Range.Replace(new Regex("[B|S|M]ad"), "[replaced]", options);
// Salve o documento do Word
doc.Save("Find-And-Replace-Multiple-Words.docx");

Resultado

c# substituir texto no arquivo docx

Localizar e substituir texto usando Regex em C#

Pode ser o caso em que você deseja localizar e substituir o texto que aparece em um padrão específico. Por exemplo, você precisa ocultar/substituir todos os IDs de email em um documento do Word. Nesses casos, você pode criar uma expressão regular para IDs de e-mail e passá-la para o método Document.Range.Replace(Regex, string, FindReplaceOptions).

O exemplo de código a seguir mostra como localizar e substituir texto com base em um padrão no documento do Word.

// Carregar um documento docx do Word
Document doc = new Document("document.docx");
FindReplaceOptions options = new FindReplaceOptions();
options.FindWholeWordsOnly = true; 
// Definir expressão regular para IDs de 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])?");
// Localizar e substituir texto no documento
doc.Range.Replace(EmailRegex, "[replaced]", options);
// Salve o documento do Word
doc.Save("Find-And-Replace-Text-Using-Regex.docx");

Resultado

como substituir texto em documento do word

Você também pode localizar e substituir texto nas seções de cabeçalho ou rodapé de um documento do Word usando a classe HeaderFooter. O método HeaderFooter.Range.Replace(string, string, FindReplaceOptions) é usado para essa finalidade. O exemplo de código a seguir mostra como substituir o texto no cabeçalho/rodapé do documento do Word em C#.

// Carregar um documento do Word
Document doc = new Document("document.docx");
// Acesse o cabeçalho/rodapé do documento do Word
HeaderFooterCollection headersFooters = doc.FirstSection.HeadersFooters;
HeaderFooter footer = headersFooters[HeaderFooterType.FooterPrimary];
// Definir opções
FindReplaceOptions options = new FindReplaceOptions
{
	MatchCase = false,
	FindWholeWordsOnly = false
};
// Substituir o texto no rodapé do documento do Word
footer.Range.Replace("This is footer of the document.", "Copyright (C) 2020 by Aspose Pty Ltd.", options);
// Salve o documento do Word
doc.Save("Find-And-Replace-Text-in-Footer.docx");

Resultado

Documento do Word Localizando e Substituindo Texto em C#.NET

Localizar e substituir texto por metacaracteres em documentos do Word usando C#

Pode haver um cenário em que um determinado texto ou frase seja composto por vários parágrafos, seções ou páginas. Nesses casos, o método simples de localizar e substituir não funcionaria efetivamente e teremos que lidar com as quebras de parágrafos, quebras de seção ou quebras de página. Para isso, o Aspose.Words permite que você use os seguintes meta-caracteres na string de pesquisa ou na string de substituição:

  • &p: quebra de parágrafo
  • &b: quebra de seção
  • &m: quebra de página
  • &l: quebra de linha

O exemplo de código a seguir mostra como localizar e substituir o texto por uma quebra de parágrafo em um documento do Word.

// Carregar um documento docx do Word
Document doc = new Document("document.docx"); 
// Definir opções 
FindReplaceOptions options = new FindReplaceOptions
{
	MatchCase = false,
	FindWholeWordsOnly = false
};
// Substituir texto por quebra de parágrafo
doc.Range.Replace("First paragraph ends.&pSecond paragraph starts.", "[replaced]", options);
// Salve o documento do Word
doc.Save("Find-And-Replace-Text-Paragraph-Break.docx");

Resultado

localizar e substituir texto usando expressão regular C#

Conclusão

Este artigo aborda algumas maneiras úteis de localizar e substituir texto em um documento do Word com base em palavras, frases e padrões regex correspondentes ou semelhantes programaticamente. Esses recursos não apenas automatizam o processo de substituição de texto, mas também economizam muito tempo e esforço necessários na operação manual de localização e substituição em documentos do Word. Você pode aprender mais sobre a Biblioteca de Palavras do Aspose usando documentação.

Artigos relacionados

Dica: Você pode estar interessado em um Conversor de Texto para GIF gratuito que permite gerar animações a partir de textos.