错误0070005 Acceso denegado Interop.Excel

时间:2015-08-11 15:31:09

标签: c# excel asp.net-mvc-3

当我尝试创建oXL对象时,我添加了Interop Excel引用但没有工作。

object missing = Type.Missing;
Range aRange;
Microsoft.Office.Interop.Excel.Application oXL = new Microsoft.Office.Interop.Excel.Application();
oXL.Visible = false;

我收到了这个错误:

  

no se pudo recuperar el generador de clases COM para el componente con CLSID {00024500-0000-0000-C000-000000000046} debido al siguiente error:80070005 Acceso denegado。 (ExcepcióndeHRESULT:0x80070005(E_ACCESSDENIED))。

英文翻译:

  

检索具有CLSID {00024500-0000-0000-C000-000000000046}的组件的COM类工厂因以下错误而失败:80070005访问被拒绝。 (HRESULT异常:0x80070005(E_ACCESSDENIED))。

1 个答案:

答案 0 :(得分:1)

您是否在服务器上安装了Office? 或
你在服务器上安装了PIA吗?

那说;这是必须的不要做

在服务器上安装Office被认为是一个糟糕的解决方案。如果您确实需要,我建议您在自己的服务器上安装Office以从IIS调用。

至少可以说,在客户端与Office交互是很麻烦的。代码示例通常是天真的。如果您仍需要 - 包装所有办公室互动。

最后 - 如果您只需要导出excel文件,请查看那里的开源库。我使用了EPPlus,它比与Excel交谈的原始解决方案更快,更不容易出错。

最后,您最终可以对excel格式进行反向工程,并通过将xml串联在一起来生成文件。我也这样做了,它闪电般快。我的第一次尝试是使用XML DOM,它完美运行,直到我们用尽RAM;然后我们将XML串在一起。

YMMV