Microsoft.Office.Interop.Excel.Application oExcel = new Microsoft.Office.Interop.Excel.Application();系统需要对数据库中的内容做Excel的导出,功能都完成了,可是速度实在太慢,经过调试发现慢的问题出在上面这句,new Excel Com对象的时候,实在让人费解,有哪位遇到过类似问题的没?怎么解决的?100分奉上~~

解决方案 »

  1.   

    new 一下要1分多钟,有时候甚至要2分钟
      

  2.   

    参考这两个纯C#代码的Excel读取器(不需要Office Excel Com组件)
    http://bbs.msproject.cn/default.aspx?g=posts&t=80快速保存ListView内存中大量数据到Excel
    http://bbs.msproject.cn/default.aspx?g=posts&t=88
      

  3.   

    看了civanx的例子,导出很快,应该排除了操作系统的问题,有一点小不同的是例子是桌面应用,我的是网站应用,不知道会不会有问题。按理说都是后台代码,应该没问题~~我再重新检查一下代码
      

  4.   

    谢谢大家的回复!还是不行,我测试的结果是如果是桌面应用很快就执行完毕了,如果是Web应用,硬盘哗哗的闪,然后停顿,然后再哗哗的闪,可以判断出同样的代码,桌面应用与Web应用系统内部的处理不一样Com在Web应用上可能牵涉到安全、权限之类的问题,是不是我哪里设置的不对呢?谁还有Excel COM在Web应用上的经验呢?
      

  5.   

    似乎找到原因了,我的开发机是XP,在DCOM配置中根本看不到Excel的属性,系统放在2003 Server上就变得很快了下午再证实一下,通过了就结贴
      

  6.   

    如果盘灯总是闪,可能是数量量大的问题引起的。我写的excle组件,用了分页处理,100万数据,也只要10多秒导入完成
      

  7.   

    new Excel 就等于启动EXCEL程序,如果你机器慢,那当然要1分钟啦
    用OLEDB数据库连接打开EXCEL吧,那样你可以
    SELECT * FROM [SHEEL1$]读出表内容到DATASET
      

  8.   

    to flygoldfish(长江支流) :
    瓶颈不在数据上,new Excel.Application的操作根本就没有对数据进行操作to greenery(greenery) :
    瓶颈也不在机器上,如果机器的问题,桌面应用下速度很快就没法解释了;我现在是要导出成.xls文件,所以必须用Excel.Application的方式因为在Web应用上对DCOM的权限和安全处理比较严格,而桌面应用就没有权限和安全的问题,我怀疑速度慢的原因还是出在XP上对Excel DCOM的处理上可能存在瑕疵,或者我的系统中安装了某些组件会对他们的性能造成影响,如果有人能够给出XP与Excel DCOM之间的权限及安全的内部运作关系那对该速度慢的现象应该有很大的说服力!