WindowServer 上 Application app = new Application() 打开一个Excel进程,光运行这句话用了差不多40秒

在web的服务器上调用icrosoft Excel进程时 Application app = new Application();光跑完这一句话。
大概40多秒,非常缓慢,请问为什么?我用的是ASPNet帐号调用它

第1个回答  2013-09-11
首先,你正确的引用的Excel的dll,一般都用2003的。
其次,你的Excel是正版的吗,就是你本地电脑上或者将来发布到服务器上,都要安装有Excel。
最后,你可以尝试写个demo,同样的代码,放到别人的电脑上,跑一下,看看。
finally:可以把你的代码,发给我,我试试。 之前做过导出Excel的项目,当时没遇到你说的问题的。
best wish!追问

是这样的,在我本机,或者测试服务器里面,我看到测试脚本里的New Excel这句话执行也是不会超过一秒钟,但是一放上真实服务器就看到它的执行时间竟然长达几十秒,会不会跟环境设置有关系?其实调用Com组件的语句我想应该差不多,不过我还是想发给你看看

重点在第一句话

追答

首先,你在你本机或者测试服务器上是没问题的。 那么,你放到真实服务器上,就速度慢了。  这就是说,代码没问题。 服务器环境的问题了。

再次,你确定了,真实服务器上有office的环境吗?  你bin引用了office.dll 和 excel.dll 了吗?

最后,我使用的代码:

private Excel.Application camnpr_objApp = new Excel.ApplicationClass();
camnpr_objApp.Workbooks.Open(...);
...

检查你的环境吧。

追问

真的,我确定server上面都装了office2003, 程序里面添加了Interop.Excel.dll这个包,请问大师,如果是设置问题,我应该从哪里开始?

追答#region 程序集 Excel.dll, v2.0.50727
// H:\Com\郑州网建\Bin\Excel.dll
#endregion

using Microsoft.Office.Core;
using Microsoft.Vbe.Interop;
using System;
using System.Reflection;
using System.Runtime.InteropServices;

namespace Excel
{...}

1、上边的代码是Excel.dll的元数据,我们知道,需要Office,Vbe..

总的,做Excel读写操作需要的dll有:Excel.dll、Microsoft.Office.Interop.Excel.dll、Microsoft.Vbe.Interop.dll、office.dll (这些dll,没有的给我留邮箱)。

2、请查看Excel操作的权限问题。(网上搜索有配置说明)

3、最好你的dll和Office版本一致。 你可以尝试重新安装一下Office(绿色版的没有)。

4、我本地、远程测试都是OK的。 你如果有其它的服务器,可以在其它上尝试。

best wish!

相似回答