2009-12-31 7 views
17

Sono curioso di sapere quante persone utilizzano Open XML (OOXML) al giorno (sia puro che tramite SDK) in ambienti chiusi e commerciali. Sono abbastanza consapevole di ciò che sta accadendo nella "rete pubblica" (MSDN, OpenXMLDeveloper.org, ecc.), Ma mi sto interrogando sull'esperienza delle persone con SO, sia positive che negative.Quanto ha catturato Open XML?

sono la maggior parte persone che optano di VBA e VSTO a favore di lavorare direttamente con i formati OOXML? Quali benefici stai ottenendo da OOXML che non stai ricevendo dal modello a oggetti. Mi piacerebbe saperne di più sul motivo per cui lo stai usando o perché non lo sei, per cosa lo stai usando, ecc.

Sto solo provando a farti un'idea della community su OOXML come approccio all'automazione dei documenti o altri usi. Non sto trovando forum di comunità (questo o altri) per essere incredibilmente attivi con domande e utenti (controlla il numero di domande per tag di questo post), quindi mi chiedo se sono uno dei pochissimi che sta usando OOXML estesamente.

risposta

9

Ora che Microsoft Office 2007 (e in particolare Excel) il supporto Open XML, mi sto trovando molto più facile da lavorare rispetto Office Automation. Alcuni importanti motivi per questo sono:

  • Prestazioni migliori;
  • Nessun problema IPC flakey (vale a dire che qualcuno a sinistra Excel aperto al dialogo Salva con nome, crash);
  • Nessuna dipendenza dall'ufficio stesso o da qualsiasi componente esterno di sorta;
  • Abbastanza facile da scrivere estensioni Linq e le query contro in C#;
  • Può essere utilizzato in ambienti server senza problemi o rischi.

Dato che gli utenti di Office XP/2003 possono aprire file di Office 2007 con il pacchetto di compatibilità, non vedo alcun motivo per continuare a utilizzare i vecchi metodi di automazione o "OfficeML". E 'un po' di una curva di apprendimento, ma è senza dubbio la migliore opzione di oggi - è gratis, è affidabile, e meglio di tutti è il formato nativo utilizzato da Office 2007 oggi e non hai bisogno di qualsiasi trucchi stupidi per farlo lavoro (come attaccare il tipo di contenuto XLS in HTML come abbiamo fatto per XL2003 e avere XL2007 lamentarsi di un'estensione errata).

Non direi che si tratta di un vero e proprio sostituto per VBA/VSTO: il problema è che solitamente fanno parte di una soluzione in cui è necessario integrarsi con l'ambiente Office stesso. L'uso di OOXML generalmente richiede la scrittura di un'intera applicazione. Ma per la semplice importazione/esportazione, che è probabilmente il 90% dell'automazione utilizzata in passato, sicuramente, OOXML è la strada da percorrere.

+0

Grazie Aaron, buona intuizione. –

+2

Un problema con Open XML è se ci sono ancora molti utenti che utilizzano Office 2003 e si stanno creando documenti da zero (ad esempio, non si utilizza Word o Excel). Ho incontrato alcuni problemi in cui avrei creato il file con l'SDK Open XML e si sarebbe aperto correttamente in Office 2007, ma quando qualcuno ha provato ad aprirlo in Office 2003 utilizzando il pacchetto di compatibilità, si sarebbe bloccato. Solo una FYI per testare entrambe le versioni di Office prima di rilasciare un documento. –

+0

@Adam: Interessante, non ho mai ricevuto una segnalazione di bug su questo, ma la collaudo definitivamente da ora in poi. – Aaronaught

1

Ho utilizzato Open Xml SDK per la generazione di documenti in SharePoint, generazione PPTX per presentazioni personalizzate (estrapolando da XSLX per i dati) e per "creare" documenti compositi da più segmenti di documenti.

Il formato e l'SDK sono grandi. Nessun problema sul server in scenari ASP.NET o SharePoint e grande velocità. Non ho trovato troppi scenari in cui l'SDK o la "forza bruta" xml non può raggiungere un obiettivo. Un'istanza è la protezione tramite password e DRM per i documenti, ma questi sono più casi d'angolo. Sono d'accordo con aaronaught che questa non è una soluzione esclusiva, ma SharePoint, VSTO e altri sono strumenti nella cintura degli strumenti per le soluzioni di generazione di documenti.

+0

È interessante, la generazione PPTX. Sarebbe uno scenario, ad esempio, come un addetto alle vendite ha bisogno di un mazzo personalizzato per un particolare cliente e il back-end utilizza l'SDK per interrogare cliente e dati per l'inserimento in un modello predefinito? –

+0

Okatu. Ho fatto quasi esattamente questo. I nostri clienti sono molto contenti del risultato. Ho anche usato Excel e Word per importare ed esportare informazioni dal nostro sistema. – Andrew

+0

Okatu, abbiamo avuto situazioni con Word molto simili a ciò che descrivete (estrarre dati da SharePoint e altri sistemi esterni) per generare documenti DOCX. Il PPTX è molto simile - la creazione di diapositive personalizzate basate su dati da un file Excel. –

1

sto facendo lo scenario che l'andamento delle vendite per un paese viene consegnato in PPT Deck utilizzando Open XML

+0

interessante. Stai usando l'SDK o scrivi direttamente? Stai facendo report BI più complessi come grafici e grafici? –

+0

SDK 2.0 Beta Ma sentire che è un dolore da usare. Io uso il riflettore che i grafici stanno creando utilizzando il pacchetto grafico di SoftwareFx. I dati sono vende dati in cui follow-up come l'azienda fornire su 40 diversi mercati e non vediamo in valori/Volumes/Percentuale/penetrazione del mercato in diversi segmenti/crescita/quota della crescita in modo sì, è BI ma usando LINQ per SQL – salgo60

+0

L'utilizzo è per decidere e motivare le decisioni di cessazione dei prodotti su diversi mercati – salgo60

3

ho guardato questa tecnologia molto, mi programmare in VBA, ma era modo modo di complesso per le mie esigenze . Ci sono alcune cose grandiose nell'usarlo che il mio elearning trarrebbe beneficio, come Linq e XML, ma la barra per passare da VBA ai formati sottostanti è troppo alta e non ho il lusso del tipo di tempo e denaro ci vorrebbe investire nell'apprendimento dei formati XML VS.Net e Open Office.

Ma l'unica cosa che penso sarebbe di grande aiuto è il metacarattere del contenuto di PowerPoint per un LMS.

+1

sì, ho sospettato tanto. il passaggio a .NET e ad altre nuove tecnologie è stato un grande passo avanti da VBA. –

4

Anche le librerie come Simple OOXML possono essere di grande aiuto con la curva di apprendimento.

2

Stiamo usando Open XML SDK per l'esportazione in Excel. Devo dire che è piuttosto lento, quindi abbiamo dovuto fare un po 'di cache da soli (per stringhe condivise). La libreria è solo una rappresentazione dell'oggetto del formato Open XML. A volte può essere una buona cosa, a volte no. Soprattutto quando devi conoscere lo standard Open XML molto bene perché l'SDK non gestirà nulla per te. Devi conoscere tutte le restrizioni che il formato porta, devi sapere quali elementi non puoi omettere in xlsx o docx, ecc. Permette di creare fogli di calcolo o documenti di parole incoerenti che non sono buoni. Bene, è gratis almeno :) Meglio di niente.

1

L'ho usato per analizzare i file Pptx, cercando commenti speciali nelle forme. Questi commenti sono collegamenti ad altre risorse (uri più spesso, file PDF, ecc.). Quindi utilizzo il software deepzoom per rendere il pptx e quindi renderizzare gli uri all'interno della forma. Divertente, ma lento. Usalo per aiutare con la ricerca e un modo "nuovo" di guardare i poster. Ma questo non è LOB.

1

Abbiamo migrato da Word Interop a Open XML molto recentemente.

La nostra applicazione viene utilizzata per la creazione di fatture nel formato Word e pdf. Quando è stato utilizzato Interop, per generare una fattura di dimensioni adeguate sono stati necessari circa 5-10 minuti. Ora, usando OpenXML e SSRS, il tempo è stato ridotto a circa 30 secondi. L'unica area problematica con Word era che alcune funzionalità non erano compatibili con le versioni precedenti da Word 2010 a 2007 e che è stato necessario del tempo per risolverle e attivarle. Come creare il sommario, unire documenti ecc.

Oltre a questo, penso che Linq, MSDN e Eric White's Blog siano sufficienti per farti andare nella giusta direzione.