我有个项目用的了Excel组件导出Excel数据,正常情况下,我选择部分数据后,点击导出,会通过ajax异步调用我写的一个Excel处理类去执行,它会在服务器上生成一个Excel文件供用户下载,当Excel组件运行后,会在服务器的进程中生成一个EXCEL.EXE的进程,当文件生成后,处理类会自动杀掉这个进程,客户端提示文件生成成功,请求下载。
以上是数据量少的时候的正常过程,
但如果数据量大的话,也会在服务器上生成一个EXCEL.EXE进程,但进程执行不到2分钟的时候,发现者个进程的CPU和内存都不动了,我认为是进程停止了,但服务器上也没生成EXCEL文件,客户端也没反应,就是一直显示“正在导出数据,请等待”,如果我强制把那个我认为停了的进程杀掉,客户端的“正在导出数据,请等待”就消失了,
我想问下,这是怎么回事!!
我今天跟踪测试的时候,进程停止,没有生成EXCEl文件的有一个错误提示“RPC服务不可用”,请遇到这类问题的朋友帮帮忙,看怎么解决下
不要用Excel组件做导出吧,数据量大非常慢,推荐使用NPOI!
NPOI 真的是一个不错的选择。 自动帮你回收 服务端不需要额外安装office
谢谢,我也看了下NPOI方面的东西,但现在这个项目已经上线了,已经不能改动太大了,真的我现在的问题有什么好的方法吗
谢谢,我也看了下NPOI方面的东西,但现在这个项目已经上线了,已经不能改动太大了,真的我现在的问题有什么好的方法吗
谢谢,我也看了下NPOI方面的东西,但现在这个项目已经上线了,已经不能改动太大了,真的我现在的问题有什么好的方法吗
@lwt2005qq: 服务器端操作COM在并发时没有解决办法,只能改用NPOI,或者加服务器把EXCEL导出任务分配给不同服务器处理,那样还是得改代码。
推荐使用NPOI,操作Excel很方便好用,具体教程参考http://tonyqus.sinaapp.com/
谢谢,我也看了下NPOI方面的东西,但现在这个项目已经上线了,已经不能改动太大了,真的我现在的问题有什么好的方法吗
@lwt2005qq:
改吧,用Excel组件导出数据量大,即使不出其它问题,多几个人操作网站根本没法用了。
改动也不会很大啊,应该都是调用一个公用的方法吧。
@向往-SONG: 恩,谢了,现在到处的时候,在某一个数据量上是可以导出的,如果用户导出的时候我不让他超过这个值,多用户并发的时候会出问题吗
NPOI
EPPLUS
这2个用的最多,楼主的现有的方法不是很好