C#操作Execl文件常用的2种方式是NPOI和Microsoft.Jet.OleDb,前者需要引用dll,后者需要安装Office客户端
今天发现别人电脑使用Microsoft.Jet.OleDb能读取文件,但是自己的电脑上不能读取,Exception提示"未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序",查阅网上资料才发现是Execl版本的问题,开发的电脑上是x64的Execl,用户电脑如果是x86的Execl需要安装AccessDatabaseEngine.exe,反之需要安装AccessDatabaseEngine_X64.exe
Execl2007之前的,后缀名为.xls的使用下面连接字符串
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\\myFolder\\myOldExcelFile.xls;
Extended Properties="Excel 8.0;HDR=YES";
Execl2007(包含2007)之后的,后缀名为.xlsx的使用下面的连接字符串
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\\myFolder\\myExcel2007file.xlsx;
Extended Properties="Excel 12.0 Xml;HDR=YES";
更详细的可以访问这位大侠的