最近在使用.Net开发项目使需要使用到将数据库中的数据导出为Excel,网上搜索了一下可以使用NPOI 、C#原生代码等。在开发的时候使用了C#原生代码来导出数据库数据到Excel,在网上搜索找了一个Excel.dll,同时又搜索找到一个操作Excel的帮助类,于是将dll引入到项目中,同时将Excel帮助类添加到项目中,很快完成了将数据库中的数据导出为Excel,然后部署到服务器上,在服务器上测试的时候,每次点击导出Excel总是报上面的错误,刚开始以为是应为在服务器上没有安装Office的问题,于是在服务器上安装了Office,想总可以解决了吧,测试一下,发现还是有这个问题。继续在网上搜索,解决方法如下:
1.导出Excel程序调试起来很正常,发布到服务器上却出错
错误:未能加载文件或程序集“Office, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040)
原因:程序中使用的Excel.dll是office2003的程序集生成的, 我服务器上安装的是office2007,版本不匹配。
解决方案:把office2007目录下的Excel.exe重新生成Excel.dll ,工具是TlbImp.exe ,安装Visual Studio的各版本都有。
方法:1.本人的是VS2010,TlbImp.exe在目录C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin下,在系统控制台转到这个路径,然后把Office下的Excel.exe也拷贝到这个路径下,命令:TlbImp.exe Excel.exe 如图:
在路径下可以找到已经生成的Excel.dll 。好那就拷贝到Bin目录下,加入到项目引用中,调试成功,错误消失
然后在配置DCom使可以通过IIS操作Excel,配置完成以后还是不能导出,每次读取Excel时总是报异常:
可能的原因有: • 文件名称或路径不存在。 • 文件正被其他程序使用。 • 您正要保存的工作簿与当前打开的工作簿同名。
原来是在配置DCom是中Microsoft Excel Application的“标识”时,忘记勾选“交互式用户”.
装载自:http://www.cnblogs.com/kingkongv/archive/2012/08/25/2656982.html