当前位置:编程学习 > C#/ASP.NET >>

关于Microsoft.Office.Interop.Excel的问题

我的项目有个功能是 Export to excel,所以我在我的项目里面引入了Microsoft.Office.Interop.Excel dll
在我本机,程序是运行正常的,因为我本机装有Excel
但是到了服务器上,我的程序就跑不起来了。
Exception :Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046} failed due to the following error: 80040154. 

ps:服务器上没有安装OFFICE。
我在网上看到别人的方法去解决那个Exception ,方法如下:
Configure DCOM

Go to the Start-Run menu item.
Type in "DCOMCNFG" and hit enter.
This should load the "Component Services" MMC (you can also load from Administrative Tools - Component Services"
Expand "Component Services"
Expand "Computers"
Expand "My Computer"
Select the "DCOM Config" item
Select the "Microsoft Excel Application" item.
Right click and select Properties

但是我发现,在服务器的"DCOMCNFG"配置里面根本就找不到“Microsoft Excel Application”
所以无法解决这个问题。
所以我想请高手们指点一下,如果使用Microsoft.Office.Interop.Excel dll,是不是就必须要安装OFFICE EXCEL?
因为用户的服务器都是用正版的软件,如果必须要安装OFFICE EXCEL,那么他们就要去购买OFFICE套件。
涉及到前的问题,用户很敏感,所以小弟在此求证一下 :如果使用Microsoft.Office.Interop.Excel dll,是不是就必须要安装OFFICE EXCEL? --------------------编程问答-------------------- 客户端export to excel的excel是从服务器上down下来的,不装不行的。 --------------------编程问答-------------------- 以前我也碰到过同样问题.后来忘怎么解决了.
你把引用的dll,也传上去试试. --------------------编程问答-------------------- Microsoft.Office.Interop.Excel dll我已经放在server上面了,但是程序还是有那个exception --------------------编程问答-------------------- 服务器上没有安装OFFICE。 
那就装上试试吧

运行dcomcnfg打开组件服务

依次展开"组件服务"->"计算机"->"我的电脑"->"DCOM配置"

找到"Microsoft Excel应用程序"

右键打开属性对话框,点击"标识"选项卡

点"下列用户",把管理员的用户密码正确填写进去...

点击"安全"选项卡,

依次把"启动和激活权限","访问权限","配置权限",都选择为自定义,

然后依次点击它们的编辑,把everyone添加进去,并加入所有的权限...

OK,解决此问题!
--------------------编程问答--------------------
引用 4 楼 lovely_baby 的回复:
服务器上没有安装OFFICE。
 那就装上试试吧

 运行dcomcnfg打开组件服务

 依次展开"组件服务"->"计算机"->"我的电脑"->"DCOM配置"

 找到"Microsoft Excel应用程序"

 右键打开属性对话框,点击"标识"选项卡

 点"下列用户",把管理员的用户密码正确填写进去...

 点击"安全"选项卡,

 依次把"启动和激活权限","访问权限","配置权限",都选择为自定义,

 然后依次点击它们的编辑,把everyone添加进去,并加入所有的权限...

 OK,解决此问题!

-----------------------
服务器装OFFICE是要钱的,不是我说能不能装的问题。
我现在是想确认一下,是不是必须要安装OFFICE? --------------------编程问答-------------------- 应该是那个owc.exe文件装上,然后在COM组件把四个引用给using 上去 --------------------编程问答-------------------- 真没有遇到过这类问题.

--------------------编程问答--------------------
引用 6 楼 wxd_860825 的回复:
应该是那个owc.exe文件装上,然后在COM组件把四个引用给using 上去

好像有点道理,我去试试,成功了给分,呵呵 --------------------编程问答-------------------- 必须安装Excel,不过也可以用其他第三方控件。
微软的那个东西不支持多线程,经常出错。
Aspose不错,不过收费。 --------------------编程问答-------------------- ... --------------------编程问答-------------------- 服务器上没有安装OFFICE。 
那就装上试试吧 

运行dcomcnfg打开组件服务 

依次展开"组件服务"->"计算机"->"我的电脑"->"DCOM配置" 

找到"Microsoft Excel应用程序" 

右键打开属性对话框,点击"标识"选项卡 

点"下列用户",把管理员的用户密码正确填写进去... 

点击"安全"选项卡, 

依次把"启动和激活权限","访问权限","配置权限",都选择为自定义, 

然后依次点击它们的编辑,把everyone添加进去,并加入所有的权限... 

OK,解决此问题! 
--------------------编程问答--------------------  这种方法使用excel,服务器必须安装excel, 同时添加net work,net services等操作权限 --------------------编程问答--------------------
引用 11 楼 yyhlian 的回复:
服务器上没有安装OFFICE。
那就装上试试吧

运行dcomcnfg打开组件服务

依次展开"组件服务"->"计算机"->"我的电脑"->"DCOM配置"

找到"Microsoft Excel应用程序"

右键打开属性对话框,点击"标识"选项卡

点"下列用户",把管理员的用户密码正确填写进去...

点击"安全"选项卡,

依次把"启动和激活权限","访问权限","配置权限",都选择为自定义,

然后依次点击它们的编辑,把everyone添加进去,并加入所有的权限...

OK,解决此问题!


同上 --------------------编程问答-------------------- ??????????????????????
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,