• 全部
  • C#综合技术
  • C#互联网桌面应用
  • AppLauncher
  • WinForm&WPF
  • C#开发新技术
  • 问答

Excel组件的速度问题,急

zx_sanjin 2007-08-20 09:31:05
Microsoft.Office.Interop.Excel.Application oExcel = new Microsoft.Office.Interop.Excel.Application();

系统需要对数据库中的内容做Excel的导出,功能都完成了,可是速度实在太慢,经过调试发现慢的问题出在上面这句,new Excel Com对象的时候,实在让人费解,有哪位遇到过类似问题的没?怎么解决的?100分奉上~~
...全文
197 点赞 收藏 11
写回复
11 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
zx_sanjin 2007-08-20
似乎找到原因了,我的开发机是XP,在DCOM配置中根本看不到Excel的属性,系统放在2003 Server上就变得很快了

下午再证实一下,通过了就结贴
回复
zx_sanjin 2007-08-20
谢谢大家的回复!

还是不行,我测试的结果是如果是桌面应用很快就执行完毕了,如果是Web应用,硬盘哗哗的闪,然后停顿,然后再哗哗的闪,可以判断出同样的代码,桌面应用与Web应用系统内部的处理不一样

Com在Web应用上可能牵涉到安全、权限之类的问题,是不是我哪里设置的不对呢?谁还有Excel COM在Web应用上的经验呢?
回复
zx_sanjin 2007-08-20
看了civanx的例子,导出很快,应该排除了操作系统的问题,有一点小不同的是例子是桌面应用,我的是网站应用,不知道会不会有问题。按理说都是后台代码,应该没问题~~

我再重新检查一下代码
回复
brucenan999 2007-08-20
哪有这么慢啊,估计你的系统有问题..
回复
zhchg6666 2007-08-20
up
回复
civanx 2007-08-20
参考这两个

纯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
回复
zx_sanjin 2007-08-20
new 一下要1分多钟,有时候甚至要2分钟
回复
hamehameha 2007-08-20
你速度有多慢?我的很快啊!!!是不是你系统有问题
回复
zx_sanjin 2007-08-20
to flygoldfish(长江支流) :
瓶颈不在数据上,new Excel.Application的操作根本就没有对数据进行操作

to greenery(greenery) :
瓶颈也不在机器上,如果机器的问题,桌面应用下速度很快就没法解释了;我现在是要导出成.xls文件,所以必须用Excel.Application的方式

因为在Web应用上对DCOM的权限和安全处理比较严格,而桌面应用就没有权限和安全的问题,我怀疑速度慢的原因还是出在XP上对Excel DCOM的处理上可能存在瑕疵,或者我的系统中安装了某些组件会对他们的性能造成影响,如果有人能够给出XP与Excel DCOM之间的权限及安全的内部运作关系那对该速度慢的现象应该有很大的说服力!
回复
greenery 2007-08-20
new Excel 就等于启动EXCEL程序,如果你机器慢,那当然要1分钟啦
用OLEDB数据库连接打开EXCEL吧,那样你可以
SELECT * FROM [SHEEL1$]读出表内容到DATASET
回复
长江支流 2007-08-20
如果盘灯总是闪,可能是数量量大的问题引起的。

我写的excle组件,用了分页处理,100万数据,也只要10多秒导入完成
回复
发帖
C#
创建于2007-09-28

10.5w+

社区成员

.NET技术 C#
申请成为版主
帖子事件
创建了帖子
2007-08-20 09:31
社区公告

让您成为最强悍的C#开发者