1、通过OLEDB方式
Provider=B.4.0;Data Source=;Extended Properties=Excel 8.0;
Provider=B.12.0;Data Source=;Extended Properties=Excel 12.0
两者区别:第一个可以访问 Office 97-2003;第二个既可以访问既可以访问 Office 2007,也可以访问 Office 97-2003
如果使用第二个,需要安装,可以从微软官网下载。
如果是使用64位操作系统,则插件应该为64位
如果是使用32位操作系统,则插件应该为32位
如果是使用64位操作系统,并且插件是32位,需要将应用程序池设置为“启用32位应用程序”,或者sln编译时,选择x86而不是anyCPU和x64
2、通过l访问
问题:如果打开Excel后,会弹出提示框,如请激活等,都会失去Excel的控制,这时候访问Excel都会报错。
处理方法:激活Excel,new完Excel对象,设置ractive = false;完成后ractive = true;
3、访问Excel会有权限限制。需要给DcomExcel赋权限:(1、交互式用户2、两个everyone 全部权限)
问题:64位操作系统通过看不到32位的Excel DCOM,需要使用另一个命令
命令行中输入:mmc /32
找到DCOM中的Excel
标识页签里,设置为:交互式用户
安全页签里,设置“启动和激活权限”为自定义,添加everyone所有权限
设置“访问权限”为自定义,添加everyone所有权限