2012-04-02 27 views

Respuesta

5

Lo he hecho de varias maneras en el pasado. Depende de si el usuario inicia la acción desde FUERA de Microsoft Word o desde INSIDE Microsoft Word.

De DENTRO Microsoft Word, puede utilizar una de las siguientes técnicas:

  1. Abrir una plantilla con marcadores de posición y utilizar VBA o VSTO para iterar sobre ellos utilizando una fuente de datos utilizando la copia & pasta. Tenga en cuenta que las tablas también son un delito aquí. Este enfoque se asemeja al enfoque 1 a continuación con "EXTERIOR". Desventaja de que es relativamente lento (copie & pegar) y que la autocorrección de Microsoft Word le gusta activar cuando menos lo necesita.
  2. Abra una plantilla con marcadores de posición y use VBA o VSTO para analizar la representación XML y luego reemplácelos. Es más rápido, pero más difícil de escribir. Especialmente dado que la representación XML puede contener fragmentos XML dentro de los marcadores de posición (como '&amp;lt;&amp;lt;PUT_<xxx/>IT_HERE&amp;gt;&amp;gt;' y casos más complejos). Además, debe asegurarse de mantener un documento XML válido y bien equilibrado.

De FUERA Microsoft Word (como interfaz web), puede utilizar una de las siguientes técnicas:

  1. tienda una plantilla en algún lugar utilizando RTF (que es mucho más fácil de procesar que la propia estructura de la Palabra) Ponga '&lt;&lt;PLACEHOLDER-FOR-NAME&gt;&gt;' o textos similares fácilmente reconocibles donde quiera reemplazarlos. Cuando el usuario solicita el documento de Word, busca el RTF, busca los datos, reemplaza los marcadores de posición y el RTF del servidor por el usuario. RTF tiene algunas restricciones, pero algunas ventajas. Las ventajas son: facilidad para crear nuevas plantillas y también funciona con Microsoft Wordpad y otros paquetes de Office. Las desventajas son que las tablas son un verdadero desastre para procesar y que no todas las construcciones de Microsoft Word son posibles. Repetir filas en una tabla es aún menos recomendable. El alto volumen puede ser un problema.
  2. Utilice un paquete de informes que también produzca documentos docx, doc o RTF. Escribe un reporte. En general, perfectamente adecuado para grandes volúmenes. Menos adecuado si desea que el usuario final escriba una cantidad importante de texto adicional, ya que los paquetes de informes suelen funcionar en función de las páginas en un texto fluido, donde a veces se inserta un salto de página explícito o implícito. Pero si solo necesita que el usuario final ingrese una o dos oraciones además, es suficiente.
  3. Fat-client. Coloque los datos SQL en alguna parte. Abre Word. Lea los datos y vea más técnicas para INSIDE Microsoft Word.

Si es necesario rellenar un documento de Word a partir de SQL Server (o cualquier otra plataforma de base de datos o datos), lo que puedo sugerir la edición gratuita de Invantive Composition for filling Word documents from the database (Tenga en cuenta que he estado involucrado con ese producto). Abre plantillas y las fusiona desde Word, pero está más dirigido a no desarrolladores; solo especifique la plantilla y los bloques de datos (posiblemente anidados) y publíquelos. Los desarrolladores solo pueden agregar C# en complementos. Creo que es un buen producto cuando tienes MUCHAS plantillas (más de 50) porque escalan más fácilmente.

-4

También podría intentar usar MS-Excel ya que se une a XML mejor que Word. También es fácil hacer que Excel produzca resultados de estilo 'Word'.

+3

esto no responde a la pregunta casi. – jorrebor

2

Es posible utilizar consulta de Microsoft para obtener los datos de la base de datos SQL para su documento, el vídeo puede ser útil https://vimeo.com/83983247

Cuestiones relacionadas