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

解决方案 »

  1.   

    1 为什么很慢?应该是你的算法问题,或者你的SQL语句写的不好。
    2 如果那个Excel是固定的,比如月报表,你可以把生成好的保存在磁盘上,下次直接使用就行了!
      

  2.   

    1 从数据库查出10000条数据,或者更多,再生成excel,这是我们需要的。有什么优化的办法?我们用tomcat+mysql
    2 不是固定的.根据输入条件,查询数据,然后生成excel
      

  3.   

    1 调用工具包方法生成EXCEL 文件并不慢;
    2 是不是数据量特别大,从数据库取数据特别慢? 考虑优化算法或者建立中间零时表;
    3 将取道的大量数据写入1中生成的EXCEL,不知道速度慢不慢?  我没实验过, 请大家讨论
      

  4.   

    嘿嘿,我生成普通的Excel表格,都是采用HTML表格格式的模板(用CSS控制格式),
    再将数据与模板进行合并后,把后缀改为xls就可以用Excel打开了。这样省得用专门
    生成Excel文档的工具了。模板(比如用:Velocity或FreeMarker)合并数据是很快
    的。这样合并出来的文件是比较小的,因为就是个HTML文件,只不过后缀改为了xls。
      

  5.   

    ls的方法不错,可以解释的再详细点吗?我以前导入导出都是用JExcel,或是用定时调用Oracle储存方法,或用工具进行导入导出。
      

  6.   

    <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打开就可以看到结果了。不过,这种方法只适合生成报表,不适合读取。