2009-12-31 8 views
17

Tengo curiosidad por saber cuántas personas usan Open XML (OOXML) actualmente (ya sea puro o mediante el SDK) en entornos cerrados y comerciales. Soy bastante consciente de lo que está sucediendo en la 'web pública' (MSDN, OpenXMLDeveloper.org, etc.), pero me pregunto acerca de la experiencia de las personas con SO, tanto buenas como malas.¿Cuánto ha atrapado Open XML?

¿La mayoría de las personas que optan por salir de VBA y VSTO prefieren trabajar directamente con formatos OOXML? ¿Qué beneficios obtiene de OOXML que no obtiene del modelo de objetos? Me encantaría saber más sobre por qué lo está usando o por qué no, para qué lo usa, etc.

Solo trato de familiarizarme con la comunidad en OOXML como una enfoque hacia la automatización de documentos u otros usos. No encuentro que los foros de la comunidad (este u otros) sean increíblemente activos con preguntas y usuarios (consulte la cantidad de preguntas por etiqueta de esta publicación), así que me pregunto si soy uno de los pocos que está usando OOXML extensivamente.

Respuesta

9

Ahora que Microsoft Office 2007 (y especialmente Excel) es compatible con Open XML, me resulta mucho más fácil trabajar con Office Automation. Algunas de las principales razones para esto son:

  • Mejor rendimiento;
  • No hay problemas de IPC flakey (es decir, alguien dejó Excel abierto en el cuadro de diálogo Guardar como, bloqueo);
  • Sin dependencia de la propia Office ni de ningún componente externo de ningún tipo;
  • Bastante fácil de escribir extensiones de Linq y consultas en C#;
  • Se puede utilizar en entornos de servidor sin ningún problema o riesgo.

Dado que los usuarios de Office XP/2003 pueden abrir archivos de Office 2007 con el paquete de compatibilidad, no veo ninguna razón para continuar utilizando los métodos de automatización anterior o "OfficeML". Es un poco una curva de aprendizaje, pero es sin duda la mejor opción hoy en día: es gratis, confiable y, lo mejor de todo, es el formato nativo que Office 2007 usa hoy en día y no necesita ningún truco estúpido para conseguirlo. trabajo (como adjuntar el tipo de contenido XLS a HTML como lo hicimos para XL2003, y tener XL2007 quejarse de una extensión incorrecta).

No diría que es un reemplazo absoluto para VBA/VSTO, lo que pasa es que generalmente forman parte de una solución donde el requisito es integrarse con el entorno de Office. El uso de OOXML generalmente requerirá que escriba una aplicación completa a su alrededor. Pero para una importación/exportación simple, que es probablemente el 90% de la automatización que se usó en el pasado, definitivamente, OOXML es el camino a seguir.

+0

Gracias Aaron, buena idea. –

+2

Una preocupación con Open XML es si todavía tiene muchos usuarios que usan Office 2003 y está creando documentos desde cero (es decir, no usa Word o Excel). Me encontré con algunos problemas donde crearía el archivo con Open XML SDK y se abriría bien en Office 2007, pero cuando alguien intentara abrirlo en Office 2003 con el paquete de compatibilidad, se bloqueaba. Solo un FYI para probar ambas versiones de Office antes de lanzar un documento. –

+0

@Adam: Interesante, nunca he recibido un informe de error sobre esto, pero definitivamente lo voy a probar a partir de ahora. – Aaronaught

1

He utilizado Open Xml SDK para la generación de documentos en SharePoint, generación PPTX para presentaciones personalizadas (extracción de XSLX para los datos) y para "compilar" documentos compuestos de múltiples segmentos de documentos.

El formato y el SDK son geniales. No se preocupe en el servidor en ASP.NET o escenarios de SharePoint, y gran velocidad. No he encontrado demasiados escenarios en los que el SDK o "fuerza bruta" xml no puede lograr un objetivo. Una instancia es la protección con contraseña y DRM para documentos, pero estos son más casos de esquina. Estoy de acuerdo con aaronaught que esta no es una solución exclusiva, pero SharePoint, VSTO y otros son herramientas en el cinturón de herramientas para soluciones de generación de documentos.

+0

Eso es interesante, la generación PPTX. ¿Sería eso un escenario, por ejemplo, como una persona de ventas necesita una plataforma personalizada para un cliente en particular y el servidor utiliza el SDK para consultar sobre el cliente y los datos para su inserción en una plantilla preconstruida? –

+0

Okatu. He hecho casi exactamente eso. Nuestro cliente está muy contento con el resultado. También utilicé Excel y Word para importar y exportar información de nuestro sistema. – Andrew

+0

Okatu, hemos tenido situaciones con Word muy similares a las que describe (extracción de datos de SharePoint y otros sistemas externos) para generar documentos DOCX. El PPTX es muy similar: crea diapositivas personalizadas basadas en datos de un archivo de Excel. –

1

que estoy haciendo el escenario que el rendimiento de ventas para un país se entrega en la cubierta PPT usando Open XML

+0

interesante. ¿Estás usando el SDK o escribiendo directamente? ¿Estás haciendo informes de inteligencia de negocios más complejos como diagramas y gráficos? –

+0

SDK 2.0 Beta Pero siento que es un dolor de usar. Utilizo el reflector que los gráficos están creando usando el paquete de gráfico SoftwareFx. Los datos se venden datos donde se realiza un seguimiento de cómo la empresa entrega en 40 mercados diferentes y observamos Valores/Volúmenes/Porcentaje/Penetración de mercado en diferentes segmentos/Crecimiento/Proporción de crecimiento así que sí, es BI pero usa Linq para SQL – salgo60

+0

El uso es para decidir y motivar decisiones de suspensión de productos en diferentes mercados – salgo60

3

Miré a esta tecnología mucho, programar en VBA, pero era manera manera de complejo para mis necesidades . Hay algunas cosas buenas acerca de usarlo de las que se beneficiaría mi elearning, como Linq y XML, pero el listón para pasar de VBA a los formatos subyacentes es demasiado alto y no tengo el lujo del tipo de tiempo y dinero tomaría invertir en aprender formatos VS.Net y Open Office XML.

Pero la única cosa que creo que sería de gran ayuda con el contenido de PowerPoint es meta-etiquetado para un LMS.

+1

sí, sospechaba mucho. hacer el cambio a .NET y otras nuevas tecnologías fue un gran salto de VBA. –

4

Bibliotecas como Simple OOXML también pueden ayudar en gran medida con la curva de aprendizaje.

2

Estamos utilizando Open XML SDK para exportar a Excel. Tengo que decir que es bastante lento, así que tuvimos que hacer un poco de almacenamiento en caché por nuestra cuenta (para cadenas compartidas). La biblioteca es solo una representación de objetos del formato Open XML. A veces puede ser algo bueno, a veces no. Especialmente cuando se debe conocer muy bien el estándar Open XML porque el SDK no manejará nada por usted. Debe conocer todas las restricciones que trae el formato, debe saber qué elementos no puede omitir en xlsx o docx, etc. Le permite crear hojas de cálculo de Excel inconsistentes o documentos de Word que no son buenos. Bueno, es gratis al menos :) Mejor que nada.

1

Yo he utilizado para analizar los archivos pptx, en busca de comentarios especiales en las formas. Estos comentarios son enlaces a otros recursos (la mayoría de las veces, archivos PDF, de uri). Luego uso el software deepzoom para representar el pptx y luego renderizo el uri dentro de la forma. Divertido, pero lento. Úselo para ayudar con la investigación y una forma "novedosa" de mirar los carteles. Pero esto no es LOB.

1

Migramos recientemente de Word Interop a Open XML.

Nuestra aplicación se utiliza para la creación de facturas en formato Word y PDF. Cuando se usó Interop, una Factura de un tamaño decente tomó entre 5 y 10 minutos para generar. Ahora, usando OpenXML y SSRS ese tiempo se ha reducido a aproximadamente 30 segundos. El único área problemática con Word era que algunas características no eran compatibles con versiones anteriores de Word 2010 a 2007 y eso demoró un tiempo en solucionarse y ponerse en marcha. Como crear el índice, fusionar documentos, etc.

Aparte de eso, creo que Linq, MSDN y Eric White's Blog son suficientes para que vayas en la dirección correcta.