使用C#操作Excel常会出现类似错误:
Could not load file or assembly ‘Microsoft.Office.Interop.Excel, Version=14.0.0.0
其可能原因,现总结如下:
C#的exe用到了excel的话,希望拿到别人的地方也正常运行不报错的话,
其中,别的地方:
- 可能没装excel
- 也可能装了excel,但是版本低
那么有几种选择:
- 最好自己在exe中集成了对应的excel的dll库。
关于,集成dll到exe中,简述为:
- 把dll加到自己的资源resource中
- 把dll加到自己的项目中,且属性设置为 嵌入的资源(Embedded Resource)
- 自己的类的初始化函数中,加上对应的load dll的相关代码
- 即使不集成excel的dll,在引用excel的dll
- 也要尽量引用低版本
比如别人已装的excel,即Office是Office12
那么你也就不要去引用Office14==Office2010:
C:\Program Files (x86)\Microsoft Visual Studio 10.0\Visual Studio Tools for Office\PIA\Office14\Microsoft.Office.Interop.Excel.dll
了,而去引用Office12==Office2007:
C:\Program Files (x86)\Microsoft Visual Studio 10.0\Visual Studio Tools for Office\PIA\Office12\Microsoft.Office.Interop.Excel.dll
- 或者是和对方电脑中安装的excel的版本一致
当然,最好确认一下,对方的电脑中装了哪个版本的Office(的excel)
比如是Office 2010==Office14,那么你也就去引用对应的Office14:
C:\Program Files (x86)\Microsoft Visual Studio 10.0\Visual Studio Tools for Office\PIA\Office14\Microsoft.Office.Interop.Excel.dll
就好了。
- 也要尽量引用低版本