部分代码如下:
odXls.Filter = "Excel files office2003(*.xls)|*.xls|Excel office2010(*.xlsx)|*.xlsx|All files (*.*)|*.*";
odXls.FilterIndex = 2;
odXls.RestoreDirectory = true;
if (odXls.ShowDialog() == DialogResult.OK)
{
this.FilePathText.Text = odXls.FileName;
this.FilePathText.ReadOnly = true;
string sConnString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source={0};" + "Extended Properties='Excel 12.0;HDR=NO;IMEX=1';", odXls.FileName);
if ((System.IO.Path.GetExtension(FilePathText.Text.Trim())).ToLower() == ".xls")
{
sConnString = "Provider=Microsoft.Jet.OLEDB.4.0;" + "data source=" + odXls.FileName + ";Extended Properties=Excel 5.0;Persist Security Info=False";
//sConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + txtFilePath.Text.Trim() + ";Extended Properties=\"Excel 8.0;HDR=" + strHead + ";IMEX=1\"";
}
跑32位系统导入excel数据提示“未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”
原因:本地安装的是64位office。故只安装了64位的Microsoft Office Access database engine,只能跑64位平台,而VS项目默认跑32位。
解决方案:
缺32位的解析引起就下载32位的引擎,缺64位的就下载64位的引擎
微软下载地址:https://www.microsoft.com/en-us/download/confirmation.aspx?id=13255
或者我已上传csdn。直接下载即可
下载地址:https://download.csdn.net/download/ethanyaa/12026139