在win7 64位下VS2008导入excel文件

来源:互联网 发布:妖怪名单实体娃娃 淘宝 编辑:程序博客网 时间:2024/05/19 15:21

   程序原来在Xp下运行的好好的,到了win7下就弹出异常:“未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序”,在网上找了各种方法,都没有解决。

   如“vs中右击项目〉属性〉生成 下的 目标平台 改为x86”,这样是不行的,而且多出来很多更莫名的错误。想来也是,本来自己的系统就是64位的,干嘛非要弄成32位的。又如“AccessDatabaseEngine.exe下载。然后安装就行了”,看到别人信誓旦旦的说这样可以,我不知道试了多少次,03、07、10各个版本的AccessDatabaseEngine.exe都试过了,不行。又有人说是office版本的问题,于是又开始漫长的重装office的过程。系统自带的无法注册office2010卸了,装03的,试试,不行。继续别的方法。突然想到试试注册过的office,装上了,还是不行,错误内容一模一样。

   几乎要放弃了,但是不甘心,于是又搜答案,忘了在哪儿看到说AccessDatabaseEngine要64位的,于是下来试试。发现不能装,因为之前装了太多版本的AccessDatabaseEngine,果断一一卸载。还是不能装上,因为这个完美注册过的office2010是32位的,要64位的才行。好吧,都到这一步了,虽然觉得不一定有希望,但是还是试试吧。

    于是,卸载office2010-32bit,下载office2010-64bit安装。装好,安装AccessDatabaseEngine-64bit。 链接字符串改为:string strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filePath + ";Extended Properties='Excel 12.0;HDR=No;IMEX=1'";。好吧,再试试。这个试的动作持续过无数次了,总是失败,这次也没太在意。在加载,和之前的一开始都一样,不知道会不会和之前一样,弹出异常。很慢,去看西沙海战纪录片。不知不觉一个节视频看完了,打开程序一看,居然加载了满满的一页,成功了。困扰了长达一周时间的异常,现在解决了。好高兴。

想到了一位程序员前辈常说的话:It's a kind of fun to do the impossible.是这个道理。

原创粉丝点击