gpt4 book ai didi

c# - 使用 ASP.NET 自动化 Excel

转载 作者:行者123 更新时间:2023-12-03 01:24:30 25 4
gpt4 key购买 nike

背景

我们正在使用 ASP.NET 2.0 开发一些内部实用程序。其中之一是从数据库中提取一些信息,并构建一个 Excel 工作簿,其中包含许多电子表格,其中包含基于数据库查询的数据。

问题

概念验证原型(prototype)(一个简单的 ASP.NET 页面,从数据库查询单个项目并打开 Excel 以将数据添加到工作表)在开发计算机上本地运行时运行良好,可以愉快地创建和显示根据要求提供 Excel 电子表格。但是,当在我们的服务器上运行时,我们在尝试实例化 Excel 时收到以下错误。

无法将类型“Microsoft.Office.Interop.Excel.ApplicationClass”的 COM 对象转换为接口(interface)类型“Microsoft.Office.Interop.Excel._Application”。此操作失败,因为对 IID 为“{000208D5-0000-0000-C000-000000000046}”的接口(interface)的 COM 组件上的 QueryInterface 调用由于以下错误而失败:不支持此类接口(interface)(HRESULT 异常:0x80004002 (E_NOINTERFACE)) .

解决方案?

我们正在使用 Excel 2003 的 PIA,并且我们在服务器上安装了 Excel 2003 和 PIA。谁能解释一下为什么这不起作用,或者给我们一些关于如何追踪问题的提示?

感谢您提供的任何帮助。

最佳答案

运行 ASP.NET 应用程序池的用户是否有权访问该应用程序?尝试以该用户身份登录(或将应用程序池更改为以该用户身份运行)并打开 Excel。如果可行,请尝试以该用户身份在服务器上运行 WinForms 应用程序,并使用失败的代码。

不确定,但我认为 PIA 程序集可能需要通过 regsvr32 注册。

我怀疑如果您作为网络​​服务运行,您将无法启动 Excel(无交互式登录、受限帐户等)。您的 ASP.NET 代码在应用程序池内运行。您可以通过 IIS 管理器更改应用程序池运行的用户。如果您想检查当前正在运行的代码,请在任务管理器中查找 w3wp 进程。

为了进行测试,请将应用程序池更改为以您认识的使用 Excel 的用户的身份运行。

关于c# - 使用 ASP.NET 自动化 Excel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/285715/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com