Excel导入数据时出错

一:c#后台使用 "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + filePath + ";" + ";Extended Properties=\"Excel 8.0;HDR=YES;IMEX=1\""

导入数据时出现:未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序。导入时的文件后缀为".xls"。

本机测试时没有出错可能是Excel版本比较高,放到服务器时就出现了,服务器的Excel版本没有本机的高。

解决办法:打开IIS选择"应用程序池"---》在右侧选择"DefaultAppPool"--->再在最右侧的操作下面选择“设置应用程序池默认设置”。打开后找到常规下面的“启用32位应用程序”,将false改为true确定即可。

二:在使用"Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + filePath + ";" + ";Extended Properties=\"Excel 12.0 Xml;HDR=YES\""

将后缀名为“.xlsx”的文件导入时出现:未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序。

根据网上的方法在本机测试时下载了“AccessDatabaseEngine_X64.exe”安装后还是会出错,还在解决测试中

经过测试已找到解决方法,由于Excel版本不高是2007的,下载AccessDatabaseEngine 2007安装后就可以使用了。之前下载的AccessDatabaseEngine都是最新版本所以无效。

但在使用过程中又有新问题出现,明明Ecel的列里面是有值的,但在代码里获取其值的时候为空了。

posted @ 2023-05-10 17:12  wuyong360  阅读(299)  评论(0编辑  收藏  举报