Estoy trabajando en una aplicación que genera una cantidad relativamente grande de salida de Word. Actualmente, estamos usando servicios de Word Interop para hacer la creación de documentos, pero es bastante lento, especialmente en versiones anteriores (anteriores a 2007) de Office. Nos gustaría acelerar la generación.¿Cómo acelerar la generación de archivos de Word desde C#?
No he trabajado mucho en perfiles, pero estoy bastante seguro de que el problema es que estamos haciendo un montón de llamadas COM. Espero que la creación de perfiles produzca un subconjunto de llamadas que son más lentas que las demás, pero mi instinto me dice que probablemente se trate de sobrecarga COM (o sobrecarga de Word Interop), y no solo de unas pocas llamadas lentas.
Además, el producto puede generar resultados en HTML, y ese proceso (a) es muy rápido, y (b) usa prácticamente los mismos recorridos de codificación, solo con una subclase diferente para las funciones específicas de HTML. Así que estoy bastante seguro de que nuestro algoritmo no es fundamentalmente lento.
Así que ... Estoy buscando sugerencias para formas alternativas de acelerar la generación de archivos de Word.
No podemos simplemente cambiar el nombre de los archivos HTML generados a .doc, y no podemos generar RTF en su lugar; en ambos casos, se pierde información importante de formato, y en el caso RTF, los gráficos en línea no funcionan robustamente.
Uno de los enfoques que estamos evaluando es generar y abrir mediante programación un archivo de Word (a través de interoperabilidad) desde una plantilla que tiene una macro que sabe cómo consumir un archivo plano y crear el resultado requerido. Nos interesan los comentarios sobre ese enfoque, así como cualquier otra idea para acelerar las cosas.
Me encantaría usarlo, pero el precio es prohibitivo para nuestras necesidades particulares: nuestra aplicación es una aplicación de escritorio, por lo que cuesta $ 2500/desarrollador más o menos. –
Sí, sé lo que quieres decir. Requiere mucho esfuerzo girar para obtener herramientas tan caras. Una pieza de código que escribí me llevó unas 4 horas, sospecho que me habría llevado una semana hacer que todo funcionara bien ya baja velocidad. Siento que tenemos nuestro dinero vale la pena. – Crispy