2009-09-01 27 views

Respuesta

11

cómo se construye la plantilla? ¿Utiliza un esquema XML subyacente cargado como parte del * .docx? ¿O está utilizando controles de contenido fuera de la cinta del Desarrollador, en cuyo caso cada control se identifica de manera única con un nombre de etiqueta determinado? Ambos enfoques facilitarían la identificación de ciertas secciones de su documento, ya que podría controlar dónde estarían las tablas o los párrafos.

Además, es posible que desee considerar el uso de la Open XML SDK 2.0 (utiliza .NET 3.5). Incluye una práctica herramienta Reflector de documentos que le permite abrir e inspeccionar cualquier documento Open XML y muestra cómo generar el código para cualquier elemento en el que haga clic.

Aparte de eso, para aprender más sobre los controles de contenido se puede comprobar estos mensajes:

+0

Cheers, voy a echar un vistazo a esos enlaces. Muchas gracias. –

3

Se puede utilizar variables de documento/campos? Simplemente vaya a Insertar-> Piezas rápidas-> Campos-> Variable de documento, ingrese el nombre de la variable.

ejemplo: http://www.codeproject.com/KB/office/Fill_Mergefields.aspx

También puedes, simplemente utilizar los valores de texto de marcador de posición como "## insert_first_name ##" y luego hacer una búsqueda y reemplazo para esas variables.

ejemplo: http://geekswithblogs.net/DanBedassa/archive/2009/01/16/dynamically-generating-word-2007-.docx-documents-using-.net.aspx

+0

Gracias por su respuesta. El DocVariable parece interesante, y podríamos usarlo para fragmentos de texto. Sin embargo, no aborda el problema de la identificación única de tablas. –

3

Creo que busca, ya sea para las marcas o los controles de contenido (en la ficha Programador de la cinta, el código de ejemplo here)
He usado rangos con nombre en Excel para el mismo propósito.

+0

Muchas gracias, voy a echar un vistazo en la pestaña Programador en la cinta ... me había olvidado que estaba allí ;-) –

1

Hay varias opciones para hacer esto.

He creado un simple biblioteca de código abierto que reemplazará las etiquetas de valores.

Por ejemplo Hi {name} con data={name:"John"} será reemplazado por Hi John.

aquí está: https://github.com/edi9999/docxtemplater

Demostración: http://javascript-ninja.fr/docxgenjs/examples/demo.html

+1

tanks @ edi9999 Funciona muy bien con .docx, pero tiene el mismo problema con .pptx. – Massimo212121

+1

También funciona con pptx (use 'PptxGen = require (" docxtemplater ").PptxGen' en su lugar) – edi9999

+1

gracias de nuevo @ edi9999 woks con pptx :) – Massimo212121

Cuestiones relacionadas