Os formatos de arquivo de processamento de texto mais comuns e amplamente usados são DOC, DOCX e ODT. O famoso Microsoft Word e OpenOffice Writer suportam esses formatos e normalmente usamos esses formatos para redigir os documentos. Portanto, como desenvolvedor, precisamos editar documentos do Word em nossos aplicativos programaticamente. Neste artigo, discutiremos como editar documentos do Word em C# usando a API .NET para edição de documentos.
A seguir estão os tópicos discutidos brevemente neste artigo:
.NET API para edição e automação de documentos do Word
Neste artigo, usarei GroupDocs.Editor for .NET em exemplos de C#, que é a API de edição de documentos e permite que os desenvolvedores carreguem, editem e salvem vários formatos de documentos usando editores HTML WYSIWYG. Além dos formatos de documentos de processamento de texto, a API suporta a edição de planilhas, apresentações, formatos HTML, XML, TXT, DSV, TSV e CSV.
Baixe o instalador DLLs ou MSI da seção de downloads ou instale a API em seu aplicativo .NET por meio de NuGet.
PM> Install-Package GroupDocs.Editor
Editar documentos do Word em C#
Logo após configurar a API, você pode avançar rapidamente para a edição do documento do Word. As etapas a seguir permitirão que você edite o documento de processamento de texto.
- Carregue o documento do Word.
- Edite de acordo com as opções.
- Salve o documento editado.
Carregar o documento do Word
Em primeiro lugar, carregue o documento fornecendo o caminho do documento e a senha, se o documento estiver protegido.
using (FileStream fs = File.OpenRead(inputFilePath))
{
Options.WordProcessingLoadOptions loadOptions = new WordProcessingLoadOptions();
loadOptions.Password = "password-if-any";
}
Edite o documento do Word
Após o carregamento, você pode editar o documento carregado conforme sua necessidade. Aqui estou substituindo todas as ocorrências da palavra “documento” pelo “documento editado” em um documento do Word usando o código C# abaixo.
using (Editor editor = new Editor(delegate { return fs; }, delegate { return loadOptions; }))
{
Options.WordProcessingEditOptions editOptions = new WordProcessingEditOptions();
editOptions.FontExtraction = FontExtractionOptions.ExtractEmbeddedWithoutSystem;
editOptions.EnableLanguageInformation = true;
editOptions.EnablePagination = true;
using (EditableDocument beforeEdit = editor.Edit(editOptions))
{
string originalContent = beforeEdit.GetContent();
List<IHtmlResource> allResources = beforeEdit.AllResources;
string editedContent = originalContent.Replace("document", "edited document");
}
}
Salve o documento do Word Editado com Opções
Por fim, ao salvar o conteúdo do documento editado, você pode definir várias opções. Essas opções incluem; paginação, definir senha, localidade, proteção ou configurações de otimização de memória. Eu defino as opções acima no código abaixo mencionado e salvo o documento editado como um arquivo DOCX protegido por senha e somente leitura.
using (EditableDocument afterEdit = EditableDocument.FromMarkup(editedContent, allResources))
{
Options.WordProcessingSaveOptions saveOptions = new WordProcessingSaveOptions(WordProcessingFormats.Docx);
saveOptions.EnablePagination = true;
saveOptions.Locale = System.Globalization.CultureInfo.GetCultureInfo("en-US");
saveOptions.OptimizeMemoryUsage = true;
saveOptions.Password = "password";
saveOptions.Protection = new WordProcessingProtection(WordProcessingProtectionType.ReadOnly, "write\_password");
using (FileStream outputStream = File.Create("filepath/editedDocument.docx"))
{
editor.Save(afterEdit, outputStream, saveOptions);
}
}
Código Completo
Para sua conveniência, estou mostrando o exemplo completo de C# explicado acima e ele edita o documento do Word e o salva no formato DOCX.
// Editar documento do Word em C# usando a API de automação e edição de documentos do GroupDocs
using (FileStream fs = File.OpenRead("filepath/document.docx"))
{ // Load Document
Options.WordProcessingLoadOptions loadOptions = new WordProcessingLoadOptions();
loadOptions.Password = "password-if-any";
// Editar documento
using (Editor editor = new Editor(delegate { return fs; }, delegate { return loadOptions; }))
{
Options.WordProcessingEditOptions editOptions = new WordProcessingEditOptions();
editOptions.FontExtraction = FontExtractionOptions.ExtractEmbeddedWithoutSystem;
editOptions.EnableLanguageInformation = true;
editOptions.EnablePagination = true;
using (EditableDocument beforeEdit = editor.Edit(editOptions))
{
string originalContent = beforeEdit.GetContent();
List<IHtmlResource> allResources = beforeEdit.AllResources;
string editedContent = originalContent.Replace("document", "edited document");
// Salvar documento
using (EditableDocument afterEdit = EditableDocument.FromMarkup(editedContent, allResources))
{
WordProcessingFormats docxFormat = WordProcessingFormats.Docx;
Options.WordProcessingSaveOptions saveOptions = new WordProcessingSaveOptions(docxFormat);
saveOptions.EnablePagination = true;
saveOptions.Locale = System.Globalization.CultureInfo.GetCultureInfo("en-US");
saveOptions.OptimizeMemoryUsage = true;
saveOptions.Password = "password";
saveOptions.Protection = new WordProcessingProtection(WordProcessingProtectionType.ReadOnly, "write_password");
using (FileStream outputStream = File.Create("filepath/editedDocument.docx"))
{
editor.Save(afterEdit, outputStream, saveOptions);
}
}
}
}
}
A seguir está o documento de saída no qual todas as ocorrências são substituídas usando o código acima.
Conclusão
Para concluir, discutimos a edição de documentos do Word em C# usando a API de edição de documentos para aplicativos .NET. Você pode usar a API com editores WYSIWYG para a edição visual de seus documentos. Depois disso, você pode seguir em frente para criar seu próprio editor de documentos. Da mesma forma, você também pode integrar o recurso de edição em seu aplicativo .NET.
Para mais detalhes, opções e exemplos, você pode visitar o repositório documentation e GitHub. Para mais dúvidas, entre em contato com o suporte no fórum.