在web系统中,从数据库取数据,然后生成excel肯定很慢,很消耗资源。如何解决?

darthin 2008-02-29 09:25:04
在web系统中,从数据库取数据,然后生成excel肯定很慢,很消耗资源。如何解决?
...全文
263 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
kokobox 2008-02-29
  • 打赏
  • 举报
回复
ls的方法不错,可以解释的再详细点吗?

我以前导入导出都是用JExcel,或是用定时调用Oracle储存方法,或用工具进行导入导出。

  • 打赏
  • 举报
回复
嘿嘿,我生成普通的Excel表格,都是采用HTML表格格式的模板(用CSS控制格式),
再将数据与模板进行合并后,把后缀改为xls就可以用Excel打开了。这样省得用专门
生成Excel文档的工具了。模板(比如用:Velocity或FreeMarker)合并数据是很快
的。这样合并出来的文件是比较小的,因为就是个HTML文件,只不过后缀改为了xls。
Amerson 2008-02-29
  • 打赏
  • 举报
回复
1 调用工具包方法生成EXCEL 文件并不慢;
2 是不是数据量特别大,从数据库取数据特别慢? 考虑优化算法或者建立中间零时表;
3 将取道的大量数据写入1中生成的EXCEL,不知道速度慢不慢? 我没实验过, 请大家讨论
c2one 2008-02-29
  • 打赏
  • 举报
回复
公用报表晚上跑批
darthin 2008-02-29
  • 打赏
  • 举报
回复
1 从数据库查出10000条数据,或者更多,再生成excel,这是我们需要的。有什么优化的办法?我们用tomcat+mysql
2 不是固定的.根据输入条件,查询数据,然后生成excel
老紫竹 2008-02-29
  • 打赏
  • 举报
回复
1 为什么很慢?应该是你的算法问题,或者你的SQL语句写的不好。
2 如果那个Excel是固定的,比如月报表,你可以把生成好的保存在磁盘上,下次直接使用就行了!
  • 打赏
  • 举报
回复
<html>
<table>
#foreach($obj in $objs)
<tr>
<td>$obj.id</td>
<td>$obj.name</td>
<td>$obj.age</td>
<td>$obj.address</td>
</tr>
#end
</html>


上面那个是个假设的Velocity模板文件,在使用时将objs压入到模板中,就会产生完整的HTML字符串,
把这个字符串写到文件里,将文件名的后缀命为“.xls”,就可以了。

当然了,HTML的table格式可以使用CSS来控制。

不信可以自己手工用HTML做个表格,把后缀改为.xls,再用Excel打开就可以看到结果了。

不过,这种方法只适合生成报表,不适合读取。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧