未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序
在excel转 DataTable遇到的问题:
System.InvalidOperationException: 未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序。
程序代码:
System.Data.DataTable dt = new System.Data.DataTable(); string extension = System.IO.Path.GetExtension(filepath); string strConn = ""; if (filepath.EndsWith(".xls")) strConn = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'", filepath); else if (filepath.EndsWith(".xlsx")) strConn = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 12.0;HDR=Yes;IMEX=1;'", filepath); System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection(strConn); conn.Open(); System.Data.DataTable dtname = conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
解决方式:下载Microsoft 2007 Office System 驱动程序
安装后,立刻解决问题