开发环境:Win7 64位、VS2013(Update 4),已安装Access 2007。
问题描述:读取Excel文件时报错:未在本地计算机上注册“Microsoft.Ace.OleDb.12.0”提供程序。
代码:运行至第7行时报错(Conn.Open();语句)。
public static DataTable 读取xlsx文件(string 文件路径, string 工作簿名称)
{
string strConn = "Provider=Microsoft.Ace.OleDb.12.0;" + "data source=" + 文件路径 + ";Extended Properties='Excel 12.0; HDR=Yes; IMEX=1'";
System.Data.OleDb.OleDbConnection Conn = new System.Data.OleDb.OleDbConnection(strConn);
string strCom = "SELECT * FROM [" + 工作簿名称 + "$]";
Conn.Open();
System.Data.OleDb.OleDbDataAdapter myCommand = new System.Data.OleDb.OleDbDataAdapter(strCom, Conn);
DataSet ds = new DataSet();
myCommand.Fill(ds, "[" + 工作簿名称 + "]");
Conn.Close();
return ds.Tables[0];
}
解决方法:修改项目属性,在“生成”选项卡中设置目标平台为“x86”。

说明:如果是未安装Access时报错,可以先下载AccessDatabaseEngine,安装后再试,仍有问题再修改上述项目属性。
精彩导读
热门资讯
关注我们