Furnizorul ‘Microsoft.ACE.OLEDB.12.0’ nu este înregistrat pe calculatorul local (Sharepoint, Dezvoltare, Parte Web, Studio Vizual, Excel, Office)

Nderon Hyseni a intrebat.
a intrebat.

Primesc următoarea eroare: The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine. în timp ce încerc să citesc un fișier excel și apoi să îl populez în GridView, în cadrul unei VisualWebPart

Am găsit câteva soluții în timp ce căutam pe Google eroarea mea, una dintre acestea a fost să instalez 2007 Office System Driver: Data Connectivity Components. L-am instalat pe acesta dar tot nu funcționează, de asemenea l-am instalat și pe acesta: Microsoft Access Database Engine 2010 Redistributable dar, din nou, nu funcționează.

Am văzut niște postări pe unele forumuri că trebuie să schimb platforma aplicației din x64 la x86 dar nu pot face acest lucru deoarece sharepoint rulează doar x64 aplicații.

Eu folosesc 32bit Office Professional Plus instalat pe aplicația mea E drive în timp ce sistemul este în C drive din cauza spațiului.

Am următorul cod:

protected void btnUpload_Click(object sender, EventArgs e)
    {
        string connectionString = "";
        if (FileUpload1.HasFile)
        {
            string fileName = Path.GetFileName(FileUpload1.PostedFile.FileName);
            string fileExtension = Path.GetExtension(FileUpload1.PostedFile.FileName);
            string fileLocation = System.Web.HttpContext.Current.Server.MapPath("~/App_GlobalResources/" + fileName);

            FileUpload1.SaveAs(fileLocation);

            //Check whether file extension is xls or xslx

            if (fileExtension == ".xls")
            {
                connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + fileLocation + ";Extended Properties=
Excel 8.0;HDR=Yes;IMEX=2
";
            }
            else if (fileExtension == ".xlsx")
            {
                connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileLocation + ";Extended Properties=
Excel 12.0;HDR=Yes;IMEX=2
";
            }

            //Create OleDB Connection and OleDb Command

            OleDbConnection con = new OleDbConnection(connectionString);
            OleDbCommand cmd = new OleDbCommand();
            cmd.CommandType = System.Data.CommandType.Text;
            cmd.Connection = con;
            OleDbDataAdapter dAdapter = new OleDbDataAdapter(cmd);
            DataTable dtExcelRecords = new DataTable();
            con.Open();
            DataTable dtExcelSheetName = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
            string getExcelSheetName = dtExcelSheetName.Rows[0]["Table_Name"].ToString();
            cmd.CommandText = "SELECT * FROM [" + getExcelSheetName + "]";
            dAdapter.SelectCommand = cmd;
            dAdapter.Fill(dtExcelRecords);
            con.Close();
            GridView1.DataSource = dtExcelRecords;
            GridView1.DataBind();
        }
    }

Vă rog să mă ajute cineva.

Comentarii

  • unde se află acest fișier excel ? este încărcat în biblioteca de documente din SharePoint ? –  > Por Mohamed El-Qassas MVP.
  • @M.Qassas Da, aș dori să citesc datele din excel care se află în biblioteca de documente. –  > Por Nderon Hyseni.
  • puteți încerca să folosiți REST, așa cum se menționează la stackoverflow.com/questions/14496608/… -.  > Por Mohamed El-Qassas MVP.
  • Vreau să citesc fișierul înainte de a-l încărca –  > Por Nderon Hyseni.
1 răspunsuri
Mohamed El-Qassas MVP

The 'Microsoft.ACE.OLEDB.12.0' provider depinde de instalarea curentă a Office este de 32 de biți sau 64 de biți.

În cazul dvs, ați instalat deja 32bit Office Professional Plus așa că ar trebui să vizați Solution Platform de la "Any CPU" to "x86" în funcție de instalarea de la birou.

Dar Setarea Platform target la "x86" nu va funcționa cu SharePoint, așa că încercați să dezinstalați 32bit Office Professional Plus apoi instalați Office 64 bitcare ar trebui să vă rezolve problema.

Verificați și alte sugestii de la ‘Microsoft.ACE.OLEDB.12.0′ provider is not registered on the local machine’.

Comentarii

  • Mulțumesc foarte mult, după ce am dezinstalat toate produsele legate de office 32bit reușesc în sfârșit să fac să funcționeze. Mulțumesc. –  > Por Nderon Hyseni.