Pergunta

Eu tenho a criação automatizada de documentos do Word a partir de modelos usando o "Microsoft Word 12.0 Biblioteca de objetos"No meu projeto, mas é inaceitavelmente lento. Estou procurando alternativas: preciso criar um documento a partir de um modelo, executar algumas macros e inserir texto e tabelas em vários intervalos de favoritos (algumas opções de formatação de texto também seriam boas)) . Eu só preciso do documento final para ser compatível com Word2007, mas preferiria uma solução facilmente disponível em .INTERNET (Outras recomendações também são apreciadas) ...

Por favor informar.

Foi útil?

Solução

Dê uma olhada na Microsoft's Office OpenXML SDK. Ele permite que você crie documentos do Word 2007 (.docx) programaticamente sem os aplicativos do Office.

Para usá -lo, você precisará estar familiarizado com o formato do arquivo openxml. Um bom ponto de partida também fornecendo exemplos são os blogs de Brian Jones e Erika Ehrli.

Esta amostra no CodeProject também pode ser um bom começo: Criação de um documento Word 2007 usando o SDK do Format XML Open.

Eu também recomendo que você veja o DocumentReflector, uma ferramenta incluída no SDK, que cria o código para produzir um determinado documento do Word baseado em um documento existente.

Outras dicas

Opções, eu usei agora:

  1. Seu - com automação: o desempenho não foi o maior problema aqui para mim, apenas todos os detalhes feios da automação com processos mortos, arquivos bloqueados, ...; Para algumas tarefas em que existe uma API e, desde que a pessoa apenas use o aplicativo, ainda é uma opção. Requer instalação de palavras.
  2. Importar como html e salvar como word - funciona rápido e melhor conforme o esperado, desde que o formato do seu Word seja simples e corresponda muito bem na estrutura de marcação HTML (por exemplo, cabeçalhos, listas de itens). Para simplificar o manuseio, os modelos precisam ser HTML então, muitas vezes um hack rápido para um caso de uso limitado. Requer instalação de palavras.
  3. Os modelos de concatenados e processos são salvos como WordML: economiza a dor da automação, mas como o WordML é apenas um formato binário mascarado como XML, geralmente é uma dor; Portanto, algumas tarefas são mais complicadas do que usar um API de palavras. No entanto, prefiro mais de 1. Não requer uma instalação de palavras.
  4. Como na resposta anterior, o OpenXML SDK: apenas começando a usar isso, parece ser um bom compromisso de 1 e 3: trabalho no nível XML ou no nível da API - o que se encaixa melhor para um determinado recurso. Não requer uma instalação de palavras.

Outras recomendações também são apreciadas

Os equivalentes de Java para o OpenXML SDK são Docx4J (meu projeto) e POI.

Usando o DOCX4J, você pode injetar macros em um DOCX existente ou trabalhar a partir de um DOTM (como sugere o Divo).

OfficeWriter é outra opção.

A API do OfficeWriter é uma biblioteca .NET que permite gerar, manipular e ler documentos do Excel e Word de seus próprios aplicativos.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top