我的Office PIA之路(一) Microsoft.Office.Interop.Excel.dll 的获取

文章详细介绍了如何解决在项目中使用OfficePIA与独立Microsoft.Office.Interop.Excel.dll之间的兼容性问题,包括查找独立dll的方法、Visual Studio配置解决方式以及优化项目体积的技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    最近有一个项目,是要用程序把学校里一个年级的学籍信息经过处理合成一个表,小学共六个年级,生成六张表,而且是*.xls文件,通过查找资料我决定使用Office PIA来试试。我最开始查到我资料是说要在Add Referrence里加入Microsoft.Office.Interop.Excel,不过这样一来程序的移植性就差了,没有安装PIA对应版本的电脑上就没法儿运行了。于是我做出了一个艰难的决定,把Microsoft.Office.Interop.Excel.dll导出来。可是各家有各家的说法,偶然从http://support.microsoft.com/kb/897646页面发现安装了O2003pia.exe即2003版的PIA安装包后就可以得到独立的Microsoft.Office.Interop.Excel.dll文件,放在项目文件夹中可以提高移植性于是从http://www.microsoft.com/en-us/download/details.aspx?id=3508找来2010版的PIA安装了,但是安装完成之后却不知道在哪儿找Microsoft.Office.Interop.Excel.dll于是使用Everything进行进行全盘搜索,结果如下:

    一不作,二不休,马上到文件夹里去找,结果却是这个样子:


    不能复制,看不懂的说,我灵机一动想出了在DOS里copy命令复制一个哈哈,结果还真成功了:


    哈哈哈哈,成功了!!!看来这个方法还可行。哎呀,感触颇深呀,Windows再怎么发展也不能忘了DOS呀!

    不过后来,我就发现我好傻哦,有两种更好的方法出现在我面前,有一种办法就是在 Visual Studio 里的 Solution Explorer 中展开当前的Project,在Reference目录里选择Microsoft.Office.Interop.Excel,然后在Properties面板里再看,可以将Copy Local设为True,这样当程序编译的时候,就会将引用的Microsoft.Office.Interoop.Excel.dll复制到程序目录中去,没有安装PIA的电脑就可以通过这个复制出来的DLL来运行了。不过DLL文件很大,我们又不是会用到其中所有的功能。于是我们又有另一个办法,就是将Properties面板中Embed Interop Types设为True,这样就会将所用到的代码嵌入到程序当中,而不用引用一整个的DLL文件,可以大大减小项目体积,当然,Embed Interop Types高为True以后,Copy Local选项就会自动设为False并且处于不可修改状态了,因为已经嵌入的代码,就没有必要再复制整个的DLL了。

  



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值