2009-05-26 30 views
7

Tôi muốn mở một OleDbConnection thành tệp Excel có trong bộ nhớ dưới dạng tệp FileStream. Có ai biết nếu điều này là có thể và làm thế nào để thực hiện nó?Trong bộ nhớ OleDbConnection vào tệp Excel

Hình ảnh lớn Tôi muốn chuyển các byte tệp vào một thủ tục lưu trữ .NET CLR và trích xuất dữ liệu. Có lẽ có một cách tốt hơn để làm điều này mà tôi đã không xem xét.

Xin cảm ơn trước.

+0

Có phải bạn muốn chuyển dữ liệu dạng bảng đến quy trình được lưu trữ không? – shahkalpesh

+0

Lý tưởng nhất, tôi sẽ chuyển tệp Excel vào tệp .NET SP dưới dạng Blob hoặc byte []. Bên trong SP tôi sẽ mở nó ra và xử lý dữ liệu. – javacavaj

Trả lời

0

Giải pháp VSTO JP cung cấp chắc chắn là khả thi. Tuy nhiên, nếu bạn thực sự muốn sử dụng OleDb và một số SQL, hãy xem this artcile: đó là bài viết cơ sở tri thức MS mô tả cách nhập dữ liệu từ excel vào SQLSever bằng OleDb.

+0

Esteban, bài viết xuất sắc. Tuy nhiên, tất cả các phương pháp được đề cập xuất hiện dựa vào tệp Excel đang được lưu vào đĩa. Bất kỳ ý tưởng làm thế nào các kỹ thuật này có thể được sử dụng để đính kèm vào một tập tin Excel trong bộ nhớ hoặc cột Blob? Cảm ơn. – javacavaj

+0

@Steve: Tôi không biết, nhưng tôi không nghĩ vậy. –

+0

@EstebanAraya Tôi hỏi một câu hỏi tương tự về nhưng về Access ở đây: http://stackoverflow.com/questions/14475968/read-access-file-accdb-from-stream bạn vui lòng kiểm tra xem nó. – Saeid

0

Bạn có thể trích xuất dữ liệu bằng cách sử dụng VSTO. Nó có một object model for Excel. Sau đó vượt qua những gì bạn muốn để proc. Tôi nghĩ rằng đó sẽ là tốt hơn so với cố gắng để có CLR lưu trữ proc giải mã một dòng tập tin Excel.

+0

Tôi hỏi một câu hỏi tương tự về nhưng về Truy cập tại đây: http://stackoverflow.com/questions/14475968/read-access-file-accdb-from-stream bạn vui lòng kiểm tra nó. – Saeid

1

Bạn có thể sử dụng SpreadsheetGear để mở tệp từ một mảng byte trong bộ nhớ hoặc từ bất kỳ luồng nào bằng SpreadsheetGear.Factory.GetWorkbookSet(). Workbooks.OpenFromMemory (byte [])/OpenFromStream (System.IO.Stream).

Tuyên bố từ chối trách nhiệm: Tôi sở hữu SpreadsheetGear LLC

Các vấn đề liên quan