在c#web应用程序中创建excel文件时出错

时间:2011-02-24 12:34:56

标签: c# asp.net excel

创建excel文件时出现以下错误

  

System.UnauthorizedAccessException的:   检索COM类工厂   具有CLSID的组件   {00024500-0000-0000-C000-000000000046}   由于以下错误而失败:   80070005访问被拒绝。 (例外   来自HRESULT:0x80070005   (E_ACCESSDENIED))。在   QA.CreateExcel.createDoc()in   E:\ ~~ CreateExcel.cs:行   33

我正在使用此代码。

private Office.Excel.Application app =new Office.Excel.Application();

m使用fw 4.0及其web应用程序

2 个答案:

答案 0 :(得分:2)

Office 2007/2010文件格式是包含在拉链内的XML文件,可以在服务器端创建,无需安装Office。一些在线搜索将揭示简化这样做的解决方案。

例如,Codeplex有一个项目,它使得这样做几乎像自动化Excel一样简单,但没有遇到任何问题。

http://www.codeproject.com/KB/office/ExcelPackage.aspx

答案 1 :(得分:0)

好吧,在服务器上安装Excel并授予IIS使用它的权限。这将不稳定,您的托管服务提供商甚至可能不会让您(除非您在自己的服务器上托管它)。这也会使您失去Office许可证。

Microsoft建议不要因为稳定性和可靠性问题而在服务器上安装Office。 http://support.microsoft.com/kb/257757专注于其中一些问题,并提到了一些替代方案。