问题如题,解决办法:去
然后安装就行了。
这个错误经常在进行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;