Excel – The ‘Microsoft.Jet.OLEDB.4.0’ provider is not registered on the local machine

asp.netexceloledbconnection

I am getting below error when after uploading my asp.net application on window server 2008 R2

The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local
machine.

I have used oleDbConnection class as below to read excel file

OleDbConnection excelConn = null;

            try
            {
                if (System.IO.Path.GetExtension(fileName) == ".xlsx")
                {

                    excelConn = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileName + "; Extended Properties='Excel 8.0;HDR=Yes;IMEX=1'");
                }
                else
                {
                    excelConn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + fileName + "; Extended Properties='Excel 8.0;HDR=Yes;IMEX=1'");
                }

                excelConn.Open();
                DataTable dt = new DataTable();

                dt = excelConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);

After searching google i found that i need to install 2007 Office System Driver
so i have also tried that however i am getting same error.

Best Answer

Yesterday, I faced same issue.

Followed below steps which solved my problem:-

  1. Installed this 64-bit driver Microsoft Access Database Engine 2010 Redistributable
  2. On application pool --> properties, Set Enable 32 bit to True and With Classic pool.
  3. Changed Provider=Microsoft.Jet.OLEDB.4.0 to "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileName + "; Extended Properties='Excel 8.0;HDR=No;IMEX=1'"
  4. Build your project by setting target platform to Any CPU.
Related Topic