2017-02-23 錯誤資訊:未在本地計算機上註冊“Microsoft.ACE.oledb.12.0”提供程式。
阿新 • • 發佈:2019-02-09
解決辦法:去
然後安裝就行了。
這個錯誤經常在進行Excel讀取操作時遇到,這是由於預設安裝的Office中缺少AccessDatabase引擎,關於AccessDatabase引擎的介紹:
Microsoft Access Database Engine 2010 也稱Microsoft Access 2010 資料庫引擎可再發行程式包,該程式用於幫助在
2010 Microsoft Office System 檔案與非 Microsoft Office 應用程式之間傳輸資料。 此下載將安裝一系列元件,幫助在現有的 Microsoft Office 檔案(例如 Microsoft Office Access 2010(*.mdb 和 *.accdb)檔案和 Microsoft Office Excel 2010(*.xls、*.xlsx 和 *.xlsb)檔案)與其他資料來源(例如 Microsoft SQL Server)之間傳輸資料。還支援與現有文字檔案建立連線。
此外,還會安裝 ODBC 和 OLEDB 驅動程式,供應用程式開發人員在開發與 Office 檔案格式連線的應用程式時使用。
另外附上.net中關於連線Excel的連線字串:
string strConn = "Provider=Microsoft.Ace.OleDb.12.0;Data Source=" + Excel全路徑+";Extended Properties='Excel 12.0;HDR=" + isTrue + ";IMEX=1;'";
這裡的isTrue當為True時,表示Excel中第一行為表頭,資料從第二行開始,反之從第一行開始.
如何使用:
DataSet ds = new DataSet(); using (OleDbConnection conn = new OleDbConnection(strConn)) { conn.Open(); string strSql = string.Format("select * from [{0}$]", sheetName);//sheetName為excel中sheet表名。 using (OleDbDataAdapter myCommand = new OleDbDataAdapter(strSql, conn)) { myCommand.Fill(ds, sheetName); } } System.Data.DataTable dt = new System.Data.DataTable(); dt = ds.Tables[0].Copy(); return dt;