Sto lavorando a un'applicazione in grado di importare dati da diversi formati diversi. Vorrei includere CSV e altri tipi di file flat (facile) nonché XLS e XLSX.
Sembra che la mia migliore opzione sia usare Interop.Excel che capisco è disponibile solo se Excel è installato.
C'è un modo per verificare se Interop.Excel è disponibile e indicare all'utente che Excel deve essere installato per importare da XLS/XLSX?Rileva disponibilità Microsoft.Office.Interop.Excel
risposta
Microsoft.Office.Interop.Excel
è un Office Primary Interop Assembly che è possibile spedire con l'applicazione, indipendentemente dal fatto che il client abbia installato Office o meno. Non farà alcun danno finché non inizi ad usarlo. Quindi, prima di utilizzarlo, è possibile look at the registry per verificare se Office è installato.
Se si desidera supportare i file nativi di Microsoft Excel e non si vuole fare affidamento su Microsoft Excel, cercare in OpenXML. Funzionerà solo con i nuovi file Excel XML formattati. Se le tue esigenze sono semplici e hai solo bisogno di leggere i dati dal file Excel o CSV legacy creato puoi essere in grado di utilizzare il provider Ace e/oi provider OLE DB 4.0 di Microsoft Jet
OpenXML consente di leggere/scrivere in nuovi file Excel formattati XML. Ci sono diversi thread su StackOverflow con maggiori informazioni sull'uso di OpenXML che vale la pena di verificare.
Questo non risolve la domanda originale. La tua proposta richiede una dipendenza esterna per cui alla fine avresti ancora bisogno di controllare ... – Kris
Quale dipendenza esterna? Avrebbe bisogno di fare riferimento all'assembly Document.OpenXML dal suo progetto e potrebbe distribuirlo con la sua applicazione. L'utente finale non avrebbe bisogno di avere Excel installato. Allo stesso modo, il provider Microsoft Jet OLEDB 4.0 è presente con le versioni più recenti del sistema operativo Windows e potrebbe essere sfruttato dalla sua applicazione per leggere fogli di calcolo di vecchio formato non supportati dall'assembly OpenXML e dai file CSV, se necessario. – codechurn
@ Art: la domanda riguardava il rilevamento di un assieme. Non si tratta di includerlo come prerequisito ... La tua soluzione è la stessa del suo problema iniziale. L'utente finale non avrebbe infatti bisogno di avere Excel installato, ma OpenOffice o qualcosa di diverso invece ... – Kris
questo potrebbe funzionare nelle proprietà del vostro progetto:
http://s11.photobucket.com/albums/a199/markawil/?action=view¤t=Untitled.png
si potrebbe tentare di utilizzare i concetti descritti qui:
How to detect .NET 2.0 vs. .NET 4.0 assemblies, and x86 vs. x64 vs. AnyCPU
Ma anche:
How to detect if another assembly is available to my application or not
- 1. Microsoft.Office.Interop.Excel Riferimento non trovato
- 2. Excel dll per Microsoft.Office.Interop.Excel
- 3. Come fare riferimento a Microsoft.Office.Interop.Excel dll?
- 4. Microsoft.Office.Interop.Excel non funziona su 64 bit
- 5. Rileva progressivamente la disponibilità delle barre di navigazione nel dispositivo OnePlusOne?
- 6. iOS: disponibilità di didReceiveMemoryWarning:
- 7. disponibilità in Python
- 8. Nome applicazione iPhone Disponibilità
- 9. Disponibilità di Cassandra
- 10. Zona di disponibilità di Heroku
- 11. Richiesta client alta disponibilità Namenode
- 12. Disponibilità JQuery sui repository Maven
- 13. Finestra di manutenzione ElastiCache Disponibilità
- 14. Disponibilità di funzionalità C++ 11
- 15. Microsoft.Office.Interop.Excel: Come applicare un bordo a ONE CELL
- 16. Come si importa da Excel a un DataSet utilizzando Microsoft.Office.Interop.Excel?
- 17. Ricevo l'errore "Applicazione" è ambiguo nello spazio dei nomi "microsoft.office.interop.excel"
- 18. Aggiornamento a Office 2016 Errore di riferimento: Microsoft.Office.Interop.Excel
- 19. Lettura dei dati da Excel 2010 utilizzando Microsoft.Office.Interop.Excel
- 20. Controlla la disponibilità del dominio Java
- 21. itunes connette la disponibilità di analisi?
- 22. controllo Android disponibilità GPS sulla dispositivo
- 23. Google Cloud Bigtable Durata/Disponibilità Garanzie
- 24. Come capire la "disponibilità" del teorema CAP?
- 25. Modo elegante per testare la disponibilità SSH
- 26. Git/Django: permesso/disponibilità del codice granulare
- 27. Come controllare la disponibilità del database
- 28. Disponibilità dispositivo, filtro e Google Play
- 29. verifica la disponibilità della camera nell'hotel
- 30. EC2 Amazon Alta disponibilità sempre attiva
Controllare il registro mi sembra strano, ma se è il modo in cui viene solitamente fatto, suppongo che lo farò. – yakatz
Come è questa la risposta? Il controllo dell'installazione di Office non significa necessariamente che i componenti di interoperabilità siano installati. La domanda è se gli assembly di interoperabilità possono essere rilevati e non come aggiungerli ai prereq di installazione. Gli assembly possono essere rilevati utilizzando la reflection. – Kris