C# ASP.NET网站与ms excel的集成

C# ASP.NET网站与ms excel的集成,c#,asp.net,excel,excel-automation,C#,Asp.net,Excel,Excel Automation,我正在从事asp.net网站和excel集成项目。我有一个excel文件,其中有很多宏,可以执行一些计算。我可以简单地传递单元格的值,并根据宏公式在excel的其他单元格中显示输出。 我需要从ASP.NET网站传递这些参数,并在ASP.NET webform上显示excel的输出。 我能够使用下面的代码实现这个功能,并且在开发过程中可以很好地工作 Application excel = new Application(); excel.DisplayAlerts

我正在从事asp.net网站和excel集成项目。我有一个excel文件,其中有很多宏,可以执行一些计算。我可以简单地传递单元格的值,并根据宏公式在excel的其他单元格中显示输出。 我需要从ASP.NET网站传递这些参数,并在ASP.NET webform上显示excel的输出。 我能够使用下面的代码实现这个功能,并且在开发过程中可以很好地工作

     Application excel = new Application();
            excel.DisplayAlerts = false;
            excel.EnableEvents = true;
            //excel.Visible = true;

            Workbook wb = excel.Workbooks.Open(path, 0, false, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", true, false, 0, true, 1, 0);
            Worksheet excelSheet = (Worksheet)wb.ActiveSheet;

            excelSheet.Cells[37, 11] = 65;
            excelSheet.Cells[37, 9] = 70;

            excelSheet.Cells[14, 8] = "A";
            excelSheet.Cells[15, 8] = "B";
            excelSheet.Cells[16, 8] = "C";


 try
            {
                excel.Run("Macro1", System.Reflection.Missing.Value, System.Reflection.Missing.Value, System.Reflection.Missing.Value, System.Reflection.Missing.Value, System.Reflection.Missing.Value
                    , System.Reflection.Missing.Value, System.Reflection.Missing.Value, System.Reflection.Missing.Value, System.Reflection.Missing.Value, System.Reflection.Missing.Value,
                    System.Reflection.Missing.Value, System.Reflection.Missing.Value, System.Reflection.Missing.Value, System.Reflection.Missing.Value, System.Reflection.Missing.Value,
                    System.Reflection.Missing.Value, System.Reflection.Missing.Value, System.Reflection.Missing.Value, System.Reflection.Missing.Value, System.Reflection.Missing.Value, System.Reflection.Missing.Value,
                    System.Reflection.Missing.Value, System.Reflection.Missing.Value, System.Reflection.Missing.Value, System.Reflection.Missing.Value, System.Reflection.Missing.Value, System.Reflection.Missing.Value, System.Reflection.Missing.Value,
                    System.Reflection.Missing.Value);
            }
            catch (Exception ex)
            { }


 try
            {
                wb.Save();
            }
            catch (Exception ex)
            { }


List<string> resultList = new List<string>();

            try
            {
                resultList.Add((excelSheet.Cells[37, 4] as Range).Value.ToString());
            }
            catch (Exception ex)
            {
                resultList.Add("");
            }
            try
            {
                resultList.Add((excelSheet.Cells[36, 9] as Range).Value.ToString());
            }
            catch (Exception ex)
            {
                resultList.Add("");
            }
当我将站点部署到生产服务器时,出现以下错误-

由于以下错误,检索CLSID为{00024500-0000-0000-C000-0000000000 46}的组件的COM类工厂失败:80070005访问被拒绝。来自HRESULT的异常:0x80070005 E_访问被拒绝

为解决此问题,我采用了以下解决方案,但不起作用- 在大多数链接中,它提到的是使用32位或64位发布应用程序,但我将其开发为asp.net网站,因此没有32位和64位的选项。
在IIS中,我已将32位应用程序启用为true。

服务器上是否安装了excel?是否已在DCOM配置中授予应用程序的IIS用户权限?请参阅:还要注意在web服务器上使用Office可能会带来的许可问题,即所有需要许可的OfficeExcel副本的用户都不能在服务器上使用。可能需要为此查找托管库,如Aspose单元格。是否检查了服务器上的excel文件权限及其文件夹?我有这个问题before@BenRobinson,是,服务器上安装了excel