2009-05-26 14 views
7

Chciałbym otworzyć OleDbConnection do pliku Excel, który jest w pamięci jako FileStream. Czy ktoś wie, czy jest to możliwe i jak to osiągnąć?W pamięci OleDbConnection do pliku Excel

Duże zdjęcie Chciałbym przekazać bajty pliku do procedury składowanej .NET CLR i wyodrębnić dane. Być może jest lepszy sposób na zrobienie tego, o czym nie pomyślałem.

Z góry dziękuję.

+0

Czy chcesz przekazać dane tabelaryczne do procedury składowanej? – shahkalpesh

+0

Idealnie, po prostu przekazałbym plik Excel do .NET SP jako Blob lub byte []. Wewnątrz SP otworzę i przetworzę dane. – javacavaj

Odpowiedz

0

Oferta JP rozwiązania VSTO jest zdecydowanie opłacalna. Jednakże, jeśli naprawdę chcesz użyć OleDb i trochę SQL, spójrz na this artcile: jest to artykuł z bazy wiedzy MS, który opisuje jak zaimportować dane z Excela do SQLSever używając OleDb.

+0

Esteban, doskonały artykuł. Jednak ze wszystkich wymienionych metod wynika, że ​​plik Excel jest utrwalony na dysku. Masz pojęcie, w jaki sposób można wykorzystać te techniki do dołączenia do pliku Excel lub kolumny Blob w pamięci? Dzięki. – javacavaj

+0

@Steve: Nie wiem, ale nie sądzę. –

+0

@EstebanAraya Pytam o podobne pytanie, ale o Access tutaj: http://stackoverflow.com/questions/14475968/read-access-file-accdb-from-stream Czy możesz to sprawdzić. – Saeid

0

Dane można wyodrębnić za pomocą VSTO. Ma numer object model for Excel. Następnie podaj, co chcesz, do proc. Myślę, że byłoby to lepsze niż próbowanie odczytywania przechowywanego przez CLR proc'a w celu odszyfrowania strumienia pliku Excel.

+0

Pytam o podobne pytanie, ale o Access tutaj: http://stackoverflow.com/questions/14475968/read-access-file-accdb-from-stream Czy możesz to sprawdzić. – Saeid

1

można wykorzystywać SpreadsheetGear otwarcia pliku z tablicy bajtów w pamięci lub z dowolnego strumienia z SpreadsheetGear.Factory.GetWorkbookSet(). Workbooks.OpenFromMemory (bajt [])/OpenFromStream (System.IO.Stream).

Zastrzeżenie: posiadam SpreadsheetGear LLC

Powiązane problemy