在ASP.NET中导出excel表

在ASP.NET中导出excel表功能,在本机上调试通过,但是部署到服务器上时出错。

错误信息为

解决办法:

1、使用的动态库不对

将Web.Config文件中的如下代码删除:

 

<add assembly="office, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71E9BCE111E9429C"/>

 

<add assembly="Microsoft.Vbe.Interop, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71E9BCE111E9429C"/>

 

<add assembly="stdole, Version=7.0.3300.0, Culture=neutral, ublicKeyToken=B03F5F7F11D50A3A"/></assemblies>

然后重新引用动态库。

在“添加引用”对话框中选择“.NET”选项卡,然后选择“Microsoft.Office.Interop.Excel”组件

2、在DCOM组件服务中给MICROSOFT.EXCEL组件 赋予ASP.NET的操作权限。

操作步骤如下: 

⑴“开始 → 程序 → 管理工具 → 组件服务”。

⑵ 展开“组件服务 → 计算机 → 我的电脑”,右击“我的电脑”,选择“属性”。

⑶ 在弹出的“我的电脑 属性”框中,选择“com安全”。

⑷ 在“访问权限”中,点击“编辑限制”,在弹出的对话框中选择“ASP.NET”用户(或“NETWORK Service”用户),并勾选中所有“允许”项。


⑸ 在“启动和激活权限”中,点击“编辑限制”,在弹出的对话框中选择“ASP.NET”用户(或“NETWORK Service”用户),并勾选中所有“允许”项。 

 

⑹ 返回“组件服务”窗口,在“我的电脑 → DCOM配置”下,右击“MICRSOFT EXCEL 应用程序”,选择“属性”。

⑺ 在弹出的对话框中选择安全项,把“启动和激活权限”、“访问权限”、“配置权限”选择为“自定义” 


⑻ 单击“启动和激活权限”、“访问权限”、“配置权限”每一项的“编辑”,在弹出的对话框中添加“ASP.NET”用户(或“NETWORK Service”用户)。同时把允许中的钩全部选择上。

 

⑼ 回到“MICRSOFT EXCEL 应用程序 属性”窗口,在“标识”项中选择“启动用户”,如下所示:

 

 

 

⑽ “确定”后即可。

 

按照如上操作重新运行仍出错,错如下:

“/Web”应用程序中的服务器错误。
--------------------------------------------------------------------------------

检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80040154。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Runtime.InteropServices.COMException: 检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80040154。

源错误:


行 302:        resp = Page.Response;
行 303:
行 304:        Microsoft.Office.Interop.Excel.Application xls = new Microsoft.Office.Interop.Excel.Application();
行 305:        int rowIndex = 1;
行 306:        int colIndex = 1;
 

源文件: e:/Web/Mainstatnce/PayRecord.aspx.cs    行: 304

堆栈跟踪:


[COMException (0x80040154): 检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80040154。]
   Mainstatnce_PayRecord.export_Click(Object sender, ImageClickEventArgs e) in e:/Web/Mainstatnce/PayRecord.aspx.cs:304
   System.Web.UI.WebControls.ImageButton.OnClick(ImageClickEventArgs e) +86
   System.Web.UI.WebControls.ImageButton.RaisePostBackEvent(String eventArgument) +115
   System.Web.UI.WebControls.ImageButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +7
   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +11
   System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1746

 


--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:2.0.50727.1433; ASP.NET 版本:2.0.50727.1433

 

在网上查找资料发现导出excel的步骤第一步都是先在服务器上安装excel。

在服务器上尝试安装excel,安装完毕后重新运行,一切ok。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值