TheGeekZn TheGeekZn - 24 days ago 7
ASP.NET (C#) Question

System.Data.OleDb.OleDbException: Could not find installable ISAM

I have scoured the net, and found many people asking this, yet none have fixed my answer.

I have a Connection Class, and a Method that uses that Class in a page.


public static OleDbConnection ConnectExcel()
//Store the connection details as a string
string connstr =
String.Format(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=pricelist.xlsx;Extended Properties=Excel 12.0 Xml;HDR=YES");

//Initialise the connection to the server using the connection string.
OleDbConnection oledbConn = new OleDbConnection(connstr);

//Open the connection, we do this here so we can instantly be able to use SQL commands in the code.

return oledbConn;

public static void DisconnectExcel()

And the code that calls it

protected void Page_Load(object sender, EventArgs e)
// Connection String
const string xlStr = "SELECT * FROM [Sheet2$]";

// Create OleDbCommand object and select data from worksheet Food
OleDbCommand cmd = new OleDbCommand(xlStr, DataConn.ConnectExcel());

// Create new OleDbDataAdapter
OleDbDataAdapter oleda = new OleDbDataAdapter();

oleda.SelectCommand = cmd;

// Create a DataSet which will hold the data extracted from the worksheet.
DataSet ds = new DataSet();

// Fill the DataSet from the data extracted from the worksheet.

// Bind the data to the GridView
gridPricelist.DataSource = ds;

Yes I STILL get:

System.Data.OleDb.OleDbException: Could not find installable ISAM.

Can anyone please help?

Answer Source

If you use more than 1 extended property then the value tokens must be quoted, otherwise there is no way for the driver to distinguish them from the other non-extended properties in the connection string;

...Extended Properties=""Excel 8.0;IMEX=1"""

modify your connection string

String.Format(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=pricelist.xlsx;Extended Properties=""Excel 12.0 Xml;HDR=YES""");

reference: Could not find installable ISAM