C#编程读取Excel文件,引用Microsoft.Office.Interop.Excel出现的问题

时间:2024-04-16 12:08:44

项目中遇到问题,其中一个工程中能引用using Excel = Microsoft.Office.Interop.Excel;,但在同一个solution下的另外一个工程却引用出错。

网上搜到资料说要重新生成:

重新运行以前编写的对Excel文件进行操作的程序提示错误“错误 1 命名空间“Microsoft”中不存在类型或命名空间名称“Office”(是缺少程序集引用吗?) ”。于是发现自己的office2007,同事的是2003,于是将项目中“引用”文件夹下的带感叹号的2个引用删除掉,重新添加引用。

  后来发现添加了“(com):Microsoft Office 11.0 Object Library”后,怎么也找不到“Microsoft.Office.Interop.Excel”,各种方法都找遍了,就是找不到。于是在网上搜集了无数文章,最后终于解决了这个问题

  第一步,将Excel.exe生成Interop.Excel.dll。生成办法:进入你的visual studio的sdk下的bin目录,找到TlbImp.exe文件,如果没有,请用光盘安装此文件,详细说明请参照MSDN。拷贝Excel.exe到该<bin>目录。点击“开始”——“运行”——输入“cmd”进入命令行方式——进入<bin>目录,(也可以直接攻VS2005的命令提示栏)

  ——输入“TlbImp /out:Interop.Excel.dll Excel.exe”,提示“Type library imported to Interop.Excel.dll路径”。此时应该可以在bin目录下找到Interop.Excel.dll文件。

搜索到TlbImp.exe文件路径:C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin

  第二步:在你的visual studio里点击:“你的项目——添加引用——浏览——找到该Interop.Excel.dll”——“确定”,即可完成引用。

  如果还不行,移除Interop.Excel.dll,重新在com里面添加Microsoft excel11.0 Library

  第三步:添加命名空间:using Excel=Microsoft.Office.Interop.Excel;

 

百思不得其解,不可能我的电脑中不存在这个dll,于是找到能引用的那个项目,右键查看属性,找到了dll的路径:

C:\Program Files (x86)\Microsoft Visual Studio 10.0\Visual Studio Tools for Office\PIA\Office12\Microsoft.Office.Interop.Excel.dll

接下来,只需要在项目中的reference中browser添加上面的路径,问题就成功解决了。