Fala galera, tudo certo?
Hoje vou mostrar como é fácil fazer edições em documentos Word (.doc ou .docx) e mais especificamente vou mostrar como substituir textos dentro de um documento, bora lá?
A ideia de escrever sobre isso surgiu quando surgiu a necessidade de enviar cartas para alguns clientes, e essas cartas já tinham um padrão pré definido, bastando apenas substituir alguns dados pessoais.
Imaginem que temos o seguinte arquivo:
O primeiro passo depois de criarmos a nossa aplicação C#, é instalar um pacote do NuGet chamado DocX, podemos fazer isso com o seguinte comando no Package Manager Console:
PM> Install-Package DocX -Version 1.3.0
Feito isso, o código para efetuarmos a leitura do nosso arquivo e a substituição das palavras é o seguinte:
string caminho = @"C:\Users\Vinicius Mussak\Desktop\ReplaceDocxExample\ReplaceDocxExample\"; | |
static void Replace() | |
{ | |
using(var documento = DocX.Load(caminho + "documento.docx")) | |
{ | |
documento.ReplaceText("#nome", "Vinicius Mussak"); | |
string mes = DateTime.Now.ToString("MMMM", CultureInfo.CreateSpecificCulture("pt-br")); | |
documento.ReplaceText("#mes", mes); | |
documento.SaveAs(caminho + "novo-documento.docx"); | |
} | |
} |
O resultado final é esse aqui:
Algumas coisas para comentar:
O método Load funciona de duas maneiras:
- Com um caminho físico, que é como estamos trabalhando. Dessa maneira, ele vai ler o arquivo de algum lugar no servidor por exemplo.
- Com um Stream, ou seja, ao invés de passarmos o caminho do arquivo, podemos passar o próprio arquivo já convertido em Stream.
O método SaveAs funciona da mesma maneira do método Load, ou seja, podemos salvar o arquivo editado de maneira física, ou colocá-lo novamente em uma Stream para fazer outras coisas com ele.
No exemplo estamos apenas substituindo palavras de um documento, mas a ferramenta é capaz de fazer muitas outras coisas em um documento, para saber mais, é só dar uma olhada da documentação aqui: https://github.com/xceedsoftware/docx
Belezura né?
Os códigos utilizados estão disponíveis no GitHub: https://github.com/vmussak/docx-replace-text
Por hoje é só isso, qualquer dúvida ou sugestão, estou à disposição! Até mais 😀