浏览 9266 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2006-10-26
问题:在一个项目中用Excel组件OWC.Spreadsheet在客户端导出HTML格式的表格为Excel文件,对于数据量较大的表格导出会造成IE窗口停止响应,用户体验很差。
想到三个解决方案: 1、用applet结合jxl实现。暂不考虑。 2、利用类似Ajax请求的机制,异步调用一个导出方法,该方法在导出完毕后回调一个callback方法。 3、利用类似Java中的线程机制,直接开一个导出线程即可。 google了一下,对于2,虽然可以用setTimeout()实现异步调用,但仍然会造成窗口无响应;对于3,得出结论,JavaScript对线程没有原生的支持。 请教2、3方案用JavaScript实现有解么?或者说对于这个导出应用根本无法实现?…… 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2006-10-26
我看大数据量的话,在后台用POI之类的生成Excel文件,再传到浏览器下载好了。
|
|
返回顶楼 | |
发表时间:2006-10-26
不想麻烦客户端,只能麻烦服务器端了。
把html表格回传到服务器,在服务器端生成excel。 或者不回传html,只把用户的查询条件回传到服务器,在服务器端生成excel。 |
|
返回顶楼 | |
发表时间:2006-10-26
不瞒楼上二位,后台是.Net,俺不太熟悉的说,.Net利用DCOM方式生成Excel也需要解决不少问题,比如表头格式、单元格格式、Excel进程的停止释放.....,项目里面的表头千差万别,写一个通用的Excel导出类要费不少功夫。
而前台导出虽然慢点,但简单可靠,且能比较好的还原HTML格式的表格…… 抛开这个导出需求不说,对于客户端稍长时间的操作这个题目还是有点价值的吧,呵呵…… |
|
返回顶楼 | |
发表时间:2006-10-26
那你就别搞那么多数据啊,每次少一点,总比死机强把。
|
|
返回顶楼 | |
发表时间:2006-10-26
Lucas Lee 写道 那你就别搞那么多数据啊,每次少一点,总比死机强把。
嗯,可是用OWC.Spreadsheet怎么能追加数据呢? |
|
返回顶楼 | |