锁定老帖子 主题:如何设计复杂统计查询的导出excel功能?
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-07-14
前提:查询是复杂耗时的比如要几分钟,但是最后结果的数据量是可控的,一般不超过几百行,也就是没必要分页.然后需要一 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-07-15
只将每次查出的数据的 ID 作为 Array 缓存到 session 里即可,需要的时候直接把这个 Array 传给 find 方法来查,速度很快。
另外,每次查询要几分钟,是否可以考虑改进数据库设计来提高查询速度。 |
|
返回顶楼 | |
发表时间:2008-07-16
不知道这里的Excel导出是否必须是xls格式的。Excel可以打开csv格式的文件,如果csv(逗号分隔值)可以接受的话,用FasterCSV来做那个导出或许也可以?
我只是之前给同学写个小东西的时候用过这个,当时也是需要导出数据。冒昧回个帖,呵呵 |
|
返回顶楼 | |
发表时间:2008-07-16
kiol 写道
开始时是把结果存到session里面,如果点导出就会把最后一次查询结果从session里面取出来,然后导出.后来因为数据太大更新不到数据里面去(数据库用的是SQL Server,是遗留系统),改为存到磁盘上.
这个问题很好解决呀,你不是已经把所有记录查出来放在客户端了吗?导出就在客户端做呗,用js生成excel! 另外几百行记录的查询和导出需要花几分钟? |
|
返回顶楼 | |
发表时间:2008-07-16
js生成excel据我所知有两种办法,一个就是调用ActiveX,一个是修改contentType。我一直用第二种,挺方便的。
|
|
返回顶楼 | |
发表时间:2008-07-16
这个是复杂的同意查询,及时一堆sum,group by还有一堆的乱七八糟判断的,所以才会慢.很可能几百万的数据,最总出几十条来.因此也不可能只记录ID的.
我也是通过修改contentType来到处excel的.我是想知道导出时,怎么避免二次查询.如果要缓存的话,怎么缓存更好?如果不缓存的话,是否可以在客户端完成导出excel的功能. |
|
返回顶楼 | |
发表时间:2008-08-01
有同事做过导出excel,但是好象据说是乱码的说,不晓得怎么解决。不知道你们有遇到过没有。
|
|
返回顶楼 | |
浏览 4982 次