How to Replace Text in a Word Document with C#

This article was translated from English: Does it need improvement?
Translated
View the article in English

O IronWord permite que desenvolvedores C# encontrem e substituam texto em documentos do Word programaticamente, sem a necessidade de interoperabilidade com o Microsoft Office, oferecendo uma solução para automatizar atualizações de documentos, personalizar modelos e gerenciar conteúdo em massa.

Automatizar a substituição de texto em documentos do Word é uma necessidade comum, seja para personalizar modelos, atualizar relatórios ou gerenciar conteúdo em massa. O IronWord é uma biblioteca C# que simplifica essa tarefa, lidando com tudo, desde operações simples de localizar e substituir até fluxos de trabalho complexos de processamento de documentos.

O IronWord manipula documentos do Word diretamente, sem depender da interoperabilidade com o Microsoft Office. Isso significa que você não precisa ter o Word instalado no seu servidor, resultando em uma solução mais rápida, confiável e escalável para processos de back-end e aplicações web. Essa independência do Microsoft Office torna o IronWord particularmente valioso para implantações em nuvem, aplicativos em contêineres e fluxos de trabalho automatizados de processamento de documentos.

Neste guia prático, vamos apresentar exemplos de código abrangentes para mostrar como localizar e substituir texto em qualquer documento do Word. Quer você esteja trabalhando com substituições de texto simples ou precise lidar com estruturas de documentos complexas com vários parágrafos e formatação, o IronWord oferece as ferramentas necessárias.

Início Rápido: Substitua Texto em Documentos do Word Facilmente

Este guia demonstra como substituir texto em um documento do Word usando o IronWord. Com apenas algumas linhas de C#, você pode carregar um arquivo DOCX, substituir um texto específico e salvar o documento atualizado. Esse processo funciona sem a interoperabilidade do Microsoft Office, sendo ideal para processos de back-end e aplicações web.

  1. Instale IronWord com o Gerenciador de Pacotes NuGet

    PM > Install-Package IronWord
  2. Copie e execute este trecho de código.

    IronWord.Document doc = new IronWord.Document("sample.docx");
    doc.ReplaceText("oldText", "newText");
    doc.SaveAs("updated.docx");
  3. Implante para testar em seu ambiente de produção.

    Comece a usar IronWord em seu projeto hoje com uma avaliação gratuita

    arrow pointer

Como faço para substituir texto em um documento do Word?

Substituir texto em um documento do Word é intuitivo com o IronWord. Primeiro, carregamos um documento existente usando o construtor WordDocument. Em seguida, acessamos a propriedade Paragraphs e usamos o método ReplaceText em um parágrafo específico. Essa abordagem oferece controle preciso sobre quais partes do documento devem ser modificadas.

O método ReplaceText recebe dois parâmetros de string: o texto a ser encontrado e o texto para substituí-lo. Este método substitui completamente todas as ocorrências correspondentes no parágrafo selecionado, sendo ideal para cenários como atualização de nomes de produtos, alteração de datas ou personalização de informações do cliente.

Pontas O método ReplaceText é sensível a maiúsculas e minúsculas e substitui todas as instâncias da string dentro do parágrafo selecionado.

Ao trabalhar com a coleção Paragraphs, é importante entender como o IronWord estrutura o conteúdo do documento. Cada parágrafo em um documento do Word é representado como um elemento individual na coleção, permitindo que você selecione seções específicas do seu documento com precisão.

PontasTodas as listas de objetos usadas neste exemplo seguem a indexação baseada em zero.

Qual é a aparência do documento de entrada?

Neste exemplo, usaremos este documento Word de amostra que contém dois parágrafos, ambos com o texto "texto antigo". Essa estrutura simples demonstra como a substituição de texto funciona no nível do parágrafo.

Exemplo de documento do Word mostrando o conteúdo do 'texto antigo' antes da substituição.

Como faço para escrever o código de substituição?

Aqui está o código para substituir o "texto antigo" do primeiro parágrafo pelo "texto novo". Observe como usamos a notação de índice para selecionar parágrafos específicos, o que nos dá controle preciso sobre qual conteúdo será modificado:

:path=/static-assets/word/content-code-examples/how-to/replace-words.cs
using IronWord;

// Open existing Word
WordDocument doc = new WordDocument("sample.docx");

// Replace the first paragraph's old text with new text
doc.Paragraphs[0].ReplaceText("old text", "new text");

// Save updated Word Document
doc.SaveAs("updated.docx");
$vbLabelText   $csharpLabel

O código acima demonstra a simplicidade da substituição de texto com o IronWord. Ao carregar o documento, direcionar um parágrafo específico e chamar ReplaceText, você pode modificar o conteúdo do documento em apenas algumas linhas de código. Essa abordagem é mais direta do que os métodos tradicionais de interoperabilidade do Office.

Qual é a aparência do resultado?

Documento Word resultante mostrando o 'novo texto' no primeiro parágrafo e o 'texto antigo' no segundo parágrafo após a operação de substituição.

Como você pode ver no arquivo de saída , apenas o texto do primeiro parágrafo foi alterado, enquanto o segundo permanece inalterado. Essa capacidade de substituição seletiva é crucial quando você precisa atualizar seções específicas sem afetar o documento inteiro.

Como faço para substituir várias ocorrências de texto?

Para substituir todas as ocorrências de uma palavra em todo o documento, percorra a coleção Paragraphs e aplique o método ReplaceText a cada uma. Essa abordagem garante que nenhuma ocorrência do texto desejado seja perdida, independentemente de onde ele apareça no documento.

Usaremos o mesmo arquivo sample.docx de antes. Se o texto a ser substituído não for encontrado em um parágrafo, nenhuma operação será realizada e o loop continuará para o próximo parágrafo. Esse comportamento à prova de falhas significa que você não precisa se preocupar em verificar se o texto existe antes de tentar a substituição.

Observe Se o texto que você deseja substituir não for encontrado, nenhuma operação será realizada.

Que código preciso para substituições múltiplas?

Aqui está o código para substituir todas as ocorrências de "texto antigo" por "texto novo" em todo o documento:

:path=/static-assets/word/content-code-examples/how-to/replace-words-multiple.cs
using IronWord;

// Open existing Word
WordDocument doc = new WordDocument("sample.docx");

// Loop through each paragraph to find and replace text
for (int i = 0; i < doc.Paragraphs.Count; i++)
{
    // Replace all occurrences of "old text" with "new text" in the current paragraph
    doc.Paragraphs[i].ReplaceText("old text", "new text");
}

// Save updated Word Document
doc.SaveAs("updated.docx");
$vbLabelText   $csharpLabel

Essa abordagem em loop proporciona cobertura completa do seu documento. Ao percorrer cada parágrafo, você garante que todas as ocorrências do texto desejado sejam substituídas. Este método é particularmente útil para atualizações em massa, como alterar nomes de empresas, atualizar terminologia ou aplicar formatação consistente em todo um documento.

Como ficará o documento após várias substituições?

Documento Word com duas linhas de 'novo texto' após múltiplas operações de substituição de texto.

Como você pode ver neste documento do Word atualizado , ambos os parágrafos foram substituídos por "novo texto". Isso demonstra a eficácia da abordagem de repetição para substituição abrangente de texto.

Como posso verificar se o texto existe antes de substituí-lo?

Se você precisar verificar se um texto existe antes de realizar uma operação, use o método FindText. Este método pesquisa o documento inteiro e retorna o primeiro TextElement que corresponde à consulta de pesquisa. Essa etapa de verificação pode ser útil quando você precisa confirmar a presença de conteúdo específico antes de fazer alterações ou ao criar lógica condicional com base no conteúdo do documento.

O método FindText é particularmente valioso em cenários onde:

  • Você precisa registrar quais documentos contêm texto específico. Você deseja executar ações diferentes dependendo se o texto for encontrado. Você está criando um sistema de validação de documentos. Você precisa gerar relatórios sobre o conteúdo dos documentos.

Abaixo segue um exemplo de como procurar o texto antigo no documento do Word mencionado acima.

Que código devo usar para encontrar o texto?

:path=/static-assets/word/content-code-examples/how-to/replace-words-find-text.cs
using IronWord;
using System;

// Open existing Word
WordDocument doc = new WordDocument("sample.docx");

// Returns the first TextContent element that contains the specified text.
Console.WriteLine(doc.FindText("old text"));
$vbLabelText   $csharpLabel

Este código demonstra a simplicidade da busca de texto com o IronWord. O método FindText retorna um objeto TextElement se o texto for encontrado, ou null se não for, facilitando a implementação de lógica condicional com base nos resultados da pesquisa.

O que o resultado da pesquisa de texto mostra?

O console de depuração do Visual Studio exibe a saída 'old_text' da operação FindText.

Como você pode ver, ele retornou o texto correspondente, confirmando que o termo de busca existe no documento. Essa capacidade de verificação é essencial para a criação de aplicativos robustos de processamento de documentos que precisam lidar com diversos cenários de conteúdo.

Aviso Se FindText não retornar nada, o texto não existe no documento. Certifique-se de que o termo de pesquisa esteja escrito corretamente e corresponda às letras maiúsculas e minúsculas do texto no documento.

Melhores práticas para substituição de texto

Ao trabalhar com substituição de texto em documentos do Word, considere estas boas práticas:

  1. Sensibilidade a Maiúsculas: ReplaceText é sensível a maiúsculas e minúsculas. Converta o texto para uma forma consistente para substituição insensível a maiúsculas.

  2. Otimização de desempenho : substituições em lote e salvamento único para reduzir as operações de E/S e melhorar o desempenho.

  3. Tratamento de erros : Implemente o tratamento de erros para conteúdo de documentos bloqueado, corrompido ou inesperado.

  4. Estratégia de backup : Crie backups antes de substituições em massa, especialmente em ambientes de produção.

  5. Gerenciamento de memória : Libere os objetos de documento adequadamente ao processar vários documentos para evitar vazamentos de memória.

A API intuitiva do IronWord facilita a implementação dessas boas práticas, permitindo que você crie soluções robustas de processamento de documentos com confiança.

Perguntas frequentes

Como faço para substituir texto em um documento do Word usando C#?

IronWord facilita a substituição de texto em documentos do Word com C#. Carregue seu documento usando o construtor WordDocument e, em seguida, use o método ReplaceText para localizar e substituir o texto. O método recebe dois parâmetros: o texto a ser localizado e o texto de substituição. Isso funciona sem a interoperabilidade do Microsoft Office, tornando-o ideal para aplicações do lado do servidor.

Posso substituir texto sem o Microsoft Office instalado?

Sim, o IronWord manipula documentos do Word diretamente, sem exigir a interoperabilidade com o Microsoft Office. Isso significa que você não precisa ter o Word instalado no seu servidor, resultando em uma solução mais rápida e confiável, perfeita para implantações em nuvem, aplicativos em contêineres e fluxos de trabalho automatizados de processamento de documentos.

Qual a maneira mais simples de localizar e substituir texto em um arquivo DOCX?

A maneira mais rápida é usando a abordagem de três linhas do IronWord: crie um objeto Document com o caminho do seu arquivo, chame o método ReplaceText com o texto antigo e o novo e, em seguida, salve usando SaveAs. Esse fluxo de trabalho minimalista cuida de tudo, desde o carregamento até o salvamento do seu documento atualizado.

A substituição de texto diferencia maiúsculas de minúsculas?

Sim, o método ReplaceText no IronWord diferencia maiúsculas de minúsculas por padrão. Ele substituirá todas as ocorrências correspondentes no parágrafo ou documento selecionado, garantindo controle preciso sobre qual texto será substituído com base na correspondência exata de maiúsculas e minúsculas.

Posso substituir o texto apenas em parágrafos específicos?

Com certeza. O IronWord oferece controle preciso por meio da propriedade Paragraphs. Você pode acessar parágrafos individuais da coleção e chamar ReplaceText apenas em parágrafos específicos, permitindo substituições direcionadas em vez de alterações em todo o documento.

Quais são os casos de uso comuns para a substituição programática de texto?

O IronWord é comumente usado para personalizar modelos, atualizar relatórios, gerenciar conteúdo em massa e automatizar atualizações de documentos. É particularmente útil em cenários como atualizar nomes de produtos, alterar datas, personalizar informações de clientes ou qualquer situação que exija processamento automatizado de documentos.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais ...

Leia mais
Pronto para começar?
Nuget Downloads 35,581 | Versão: 2026.3 acaba de ser lançado
Still Scrolling Icon

Ainda está rolando a tela?

Quer provas rápidas? PM > Install-Package IronWord
executar um exemplo Veja seus dados se transformarem em um documento do Word.