2009-05-26 12 views
7

Vorrei aprire un OleDbConnection in un file Excel che è in memoria come file system . Qualcuno sa se questo è possibile e come realizzarlo?In memoria OleDbConnection in Excel File

Immagine grande Vorrei passare i byte del file in una stored procedure CLR .NET ed estrarre i dati. Forse c'è un modo migliore per farlo che non ho considerato.

Grazie in anticipo.

+0

E 'che si desidera passare dati tabulari alla stored procedure? – shahkalpesh

+0

Idealmente, vorrei semplicemente passare il file Excel a .NET SP come Blob o byte []. Dentro l'SP lo aprirò e processerò i dati. – javacavaj

risposta

0

La soluzione VSTO offerta da JP è decisamente valida. Tuttavia, se vuoi davvero usare OleDb e alcuni SQL, dai un'occhiata a artcile this: si tratta di un articolo della knowledge base MS che descrive come importare i dati da excel in SQLSever usando OleDb.

+0

Esteban, eccellente articolo. Tuttavia, di tutto il metodo menzionato sembrano affidarsi al fatto che il file Excel sia persistente sul disco. Qualche idea su come queste tecniche potrebbero essere utilizzate per collegarsi a un file Excel in-memory o alla colonna Blob? Grazie. – javacavaj

+0

@Steve: non lo so, ma non credo. –

+0

@EstebanAraya Faccio una domanda simile a proposito di Access qui: http://stackoverflow.com/questions/14475968/read-access-file-accdb-from-stream vorresti verificarlo. – Saeid

0

È possibile estrarre i dati utilizzando VSTO. Ha un object model for Excel. Quindi passa ciò che vuoi al proc. Penso che sarebbe meglio che cercare di far decifrare il flusso di file Excel da parte del processo memorizzato CLR.

+0

Chiedo una domanda simile a proposito di Access qui: http://stackoverflow.com/questions/14475968/read-access-file-accdb-from-stream, la prego di controllarla. – Saeid

1

È possibile utilizzare SpreadsheetGear per aprire un file da una matrice di byte in memoria o da qualsiasi flusso con SpreadsheetGear.Factory.GetWorkbookSet(). Workbooks.OpenFromMemory (byte [])/OpenFromStream (System.IO.Stream).

Disclaimer: possiedo SpreadsheetGear LLC

Problemi correlati