Opzioni per l'automazione della creazione di documenti Microsoft Word 2007 [chiuso]
-
05-07-2019 - |
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.
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:
- 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.
- 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.
- 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.
- 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.