数据库表大概有6万条数据,通过poi或者jxl方式导出到excel的时候,时间太长,请问大家有没有什么好的方法,谢谢

解决方案 »

  1.   

    建议使用 odbc 直接取出数据库 数据 然后插入 Excel(Excel 支持odbc,java 也直接odbc) 
    这样有个缺陷是只能在windows 系统中应用 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                String url = "jdbc:odbc:Driver={Microsoft Excel Driver (*.xls)};readOnly=false;DBQ=d:\\12.xls";
                Connection con = DriverManager.getConnection(url);
      

  2.   

    还有种方法是
    1、用poi,很简单的方式,生成Excel并输出到输出流,直接让用户下载
    2、生成一些小的临时文件,最后再合并为大文件,用一些poi的二进制方式。注:在使用poi 和jxl 这2包 对Excel 操作时,要注意内存溢出,当数据量比较大时很容易内存溢出的,网上有人说,用方法2可以避免内存溢出。但我还是没找到很好的解决方法、方法1 在数据量大时肯定溢出。最后我用的是odbc操作Excel的方式,不带溢出的.只是只能在windos 下跑。
      

  3.   

    我以前也遇到这样的问题,用jxl包导数据的话一般只能导2万到3万条数据,我后来的解决方法是,把数据导成csv格式,在服务端写数据时每行数据中的列用“,”隔开,在客户端用户可以以xl格式打开csv文件。
      

  4.   


    “这样有个缺陷是只能在windows 系统中应用”是什么意思?系统是部署在linux上的,是不是说客户端必须是windows的?谢谢
      

  5.   

    应该是服务器必须是WINDOWS的,因为要ODBC的支持,
    4楼的方法值得考虑。
      

  6.   

    我做的项目是部署linux下,用户要求导出excel,不能是csv格式的,郁闷,各位没有碰到这样的情况吗?