2012-04-02 13 views

risposta

5

L'ho fatto in vari modi in passato. Dipende se l'utente avvia l'azione da OUTSIDE di Microsoft Word o da INSIDE Microsoft Word.

Da ALL'INTERNO Microsoft Word, è possibile utilizzare una delle seguenti tecniche:

  1. Aprire un modello con segnaposti e utilizzare VBA o VSTO per scorrere su di loro utilizzando una fonte di dati utilizzando la copia & incolla. Si prega di notare che i tavoli sono anche un crimine qui. Questo approccio è simile all'approccio 1 di seguito con "FUORI". Lo svantaggio è che è relativamente lento (copia & incolla) e che il correttore automatico di Microsoft Word piace avviare quando meno necessario.
  2. Aprire un modello con segnaposto e utilizzare VBA o VSTO per analizzare la rappresentazione XML e quindi sostituirli. È più veloce, ma più difficile da scrivere. Soprattutto perché la rappresentazione XML può contenere frammenti XML all'interno dei segnaposto (come "&amp;lt;&amp;lt;PUT_<xxx/>IT_HERE&amp;gt;&amp;gt;" e casi più complessi). Inoltre, è necessario assicurarsi di mantenere un documento XML valido e ben bilanciato.

Da FUORI Microsoft Word (come ad esempio l'interfaccia web) è possibile utilizzare una delle seguenti tecniche:

  1. Conservare un modello da qualche parte utilizzando RTF (che è molto più facile da gestire rispetto a propria struttura di Word). Inserisci "&lt;&lt;PLACEHOLDER-FOR-NAME&gt;&gt;" o simili testi facilmente riconoscibili in cui desideri sostituirlo. Quando l'utente richiede il documento Word, recupera l'RTF, recupera i dati, sostituisce i segnaposti, il server RTF all'utente. RTF ha alcune restrizioni, ma alcuni vantaggi. I vantaggi sono: facilità di creazione di nuovi modelli e funziona anche con Microsoft Wordpad e altri pacchetti Office. Gli svantaggi sono che le tabelle sono un vero casino da elaborare e che non tutti i costrutti di Microsoft Word sono possibili. Ripetere le righe in una tabella è ancora meno consigliato. Un volume elevato può essere un problema.
  2. Utilizzare un pacchetto di report che si verifica anche per l'output di documenti docx, doc o RTF. Scrivi un rapporto. In generale perfettamente adatto per alti volumi. Meno adatto se si desidera che l'utente finale scriva una quantità maggiore di testo aggiuntivo, poiché i pacchetti di report funzionano generalmente in base alle pagine anziché su un testo scorrevole, dove a volte viene inserita un'interruzione di pagina esplicita o implicita. Ma se hai solo bisogno che l'utente finale inserisca una o due frasi in più, è sufficiente.
  3. Fat-client. Metti i dati SQL da qualche parte. Apri Word. Leggere i dati e vedere ulteriori tecniche per INSIDE Microsoft Word.

Se è necessario compilare un documento Word da SQL Server (o qualsiasi altra piattaforma di database o dati), posso suggerire la versione gratuita di Invantive Composition for filling Word documents from the database (si ricorda che sono stato coinvolto con quel prodotto). Apre i modelli e li unisce all'interno di Word, ma è più mirato ai non sviluppatori; basta specificare il modello e i datablock (possibilmente annidati) e pubblicare. Gli sviluppatori possono aggiungere solo alcuni C# nei plugin. Penso che sia un buon prodotto quando si hanno MOLTI modelli (oltre 50) perché scalano più facilmente.

-4

Si potrebbe anche provare a utilizzare MS-Excel in quanto si lega a XML meglio di Word. È facile anche fare in modo che Excel produca l'output in stile 'Parola'.

+3

questo risponde non quasi alla domanda. – jorrebor

Problemi correlati