2008-11-14 16 views
6

Necesito rellenar un documento de Word 2007 a partir del código, incluyendo la repetición de secciones de tabla: actualmente utilizo una transformación XML en la parte document.xml del docx, pero esto lleva mucho tiempo configurarlo (cada vez que edita el documento de plantilla, debe volver a crear el archivo transform.xsl, que puede tomar hasta un día para documentos complejos).¿Cuál es la mejor manera de rellenar una plantilla de Word 2007 en C#?

¿Hay alguna manera mejor, preferiblemente una que no requiera que ejecute Word 2007 durante el proceso?

Saludos Richard

Respuesta

3

me trató a mí mismo a escribir algo de código para ese propósito, pero se rindió. Ahora uso un producto de terceros: Aspose Words y estoy muy contento con ese componente.

No necesita Microsoft Word en la máquina.

"Aspose.Words permite que las aplicaciones .NET y Java lean, modifiquen y escriban documentos de Word® sin utilizar Microsoft Word®."

"Aspose.Words es compatible con una amplia gama de características que incluyen la creación de documentos, contenido y formato de la manipulación, poderosa capacidad de combinación de correspondencia, un amplio soporte de DOC, RTF, OOXML, WordprocessingML, HTML, PDF y OpenDocument formatos. Aspose. Words es verdaderamente el componente de Word más asequible, más rápido y con más funciones en el mercado ".

DESCARGO DE RESPONSABILIDAD: No estoy afiliado a esa empresa.

+1

Huy, que el precio es bastante empinada! –

2

Como un archivo DOCX es simplemente un archivo ZIP que contiene una estructura de carpetas con imágenes y archivos XML, debería poder manipular esos archivos XML utilizando nuestra API favorita de manipulación XML. La especificación del formato se conoce como WordprocessingML, parte del Office Open XML standard.

Pensé en mencionarlo en caso de que la herramienta de terceros sugerida por splattne no sea una opción.

+0

Puede manipular los datos XML dentro del paquete OpenXml con XSLT, actualmente es la técnica más común para generar archivos DocX desde XML. Ver: http://www.lucbos.net/2011/06/xslt-transform-your-xml-data-into.html –

0

¿Ha considerado usar VB? Puede crear un ensamblaje por separado para rellenar su documento.

Sé que está buscando una solución C#, pero la compatibilidad literal con XML es un área donde el soporte literal XML podría ayudarlo a completar el documento. Cree un documento en Word para el servidor como plantilla, descomprima el docx, pegue la sección XML relevante que desea cambiar en su código VB y agregue código para completar las partes que desea cambiar. Es difícil decir a partir de su descripción si esto satisfaría sus requisitos, pero le sugiero que lo analice.

Cuestiones relacionadas