Domanda

Ho automatizzato la creazione di documenti Word da modelli usando " Microsoft Word 12.0 Object Library " nel mio progetto, ma è inaccettabilmente lento. Sto cercando alternative: ho bisogno di creare un documento da un modello, eseguire alcune macro e inserire testo e tabelle in vari intervalli di segnalibri (anche alcune opzioni di formattazione del testo sarebbero belle). Ho solo bisogno che il documento finale sia compatibile con Word2007 , ma preferirei una soluzione facilmente disponibile da .NET (anche altri consigli sono apprezzati) ...

Si prega di avvisare.

È stato utile?

Soluzione

Dai un'occhiata a SDK OpenXML di Office . Consente di creare documenti Word 2007 (.docx) a livello di codice senza le applicazioni di Office.

Per usarlo dovrai avere familiarità con il formato file OpenXML. Un buon punto di partenza che fornisce anche esempi sono i blog di Brian Jones e Erika Ehrli .

Anche questo esempio su CodeProject potrebbe essere un buon inizio: Creazione di un documento di Word 2007 che utilizza l'SDK in formato Open XML .

Ti consiglio anche di dare un'occhiata a DocumentReflector, uno strumento incluso nell'SDK, che crea il codice per produrre un determinato documento Word basato su un documento esistente.

Altri suggerimenti

Opzioni, ho usato fino ad ora:

  1. Tuo - Automazione COM: le prestazioni non sono state il problema principale per me, solo tutti i brutti dettagli dell'automazione COM come processi morti, file bloccati, ...; per alcune attività in cui esiste un'API e purché solo l'app utilizzi l'app, è ancora un'opzione. Richiede l'installazione di Word.
  2. Importa come HTML e salva come Word: funziona rapidamente e meglio come previsto, purché il formato della tua parola sia semplice e corrisponda abbastanza bene alla struttura del markup HTML (ad es. intestazioni, elenchi di articoli). Per semplificare la gestione, i modelli devono essere HTML, così spesso un trucco rapido per un caso d'uso limitato. Richiede l'installazione di Word.
  3. Concatena e elabora modelli salvati come WordML: ti fa risparmiare il dolore di COM automazione, ma dal momento che WordML è solo un formato binario mascherato da XML, spesso è una seccatura; quindi alcune attività sono più complicate rispetto all'utilizzo di un'API di Word. Tuttavia lo preferisco a 1. Non richiede un'installazione di Word.
  4. Come nella risposta precedente, OpenXML SDK: appena iniziato a usarlo, sembra essere un buon compromesso di 1 e 3: lavorare a livello XML o a livello di API - tutto ciò che si adatta meglio per a certa caratteristica. Non richiede un'installazione di Word.
  

sono apprezzate anche altre raccomandazioni

Gli equivalenti Java all'SDK OpenXML sono docx4j (il mio progetto) e PDI.

Usando docx4j, puoi iniettare macro in un docx esistente o lavorare da un punto (come suggerisce Divo).

Officewriter è un'altra opzione.

  

L'API di OfficeWriter è una libreria .NET che ti consente di generare,   manipolare e leggere documenti Excel e Word dai propri   applicazioni.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top