Home » excel » .net – In Memory OleDbConnection to Excel File

.net – In Memory OleDbConnection to Excel File

Posted by: admin March 7, 2020 Leave a comment

Questions:

I would like to open an OleDbConnection to an Excel file that’s in memory as a
FileStream. Does anyone know if this is possible and how to accomplish it?

Big picture I would like to pass the file bytes into a .NET CLR Stored Procedure and extract the data. Perhaps there’s a better way to do this that I’ve not considered.

Thanks in advance.

How to&Answers:

The VSTO solution JP offers is definitely viable. However, if you really want to use OleDb and some SQL, take a look at this artcile: it’s a MS knowledge base article that describes how to import data from excel into SQLSever using OleDb.

Answer:

You can use SpreadsheetGear to open a file from a byte array in memory or from any stream with SpreadsheetGear.Factory.GetWorkbookSet().Workbooks.OpenFromMemory(byte[]) / OpenFromStream(System.IO.Stream).

Disclaimer: I own SpreadsheetGear LLC

Answer:

You can extract the data using VSTO. It has an object model for Excel. Then pass what you want to the proc. I think that would be better than trying to have the CLR stored proc decipher an Excel file stream.