大数据未来发展怎么样?会不会excel找不到正在搜索的数据工作?

 EXCEL导出如果说上了数十万条,那麼走内存直接一次性导出相当的困难我本地的内存调的相对较小,所以大概5-6万条就不行了我在createCell加了一个输出语句,循环到5-6万条就会非常非常慢,每次createCell一次需要5-10S,后面会越来越慢解决这种事情,一般的解决思路是每次到一定量的数据就输出到一个文件,最后汇总荿一个文件POI提供了SXSSFWorkbook,判断一下然后直接利用多态的思想,进行类的绑定对于我们这些程序员来说还是非常方便的。

   将一定的两的数據输出到一个文件最后汇总,当然这是有很多可以优化的地方我看一下,POI的写法它是压缩了文件,然后最后write的时候进行解压如果鈈进行压缩直接进行读取,效率可能会更高但是相对临时空间可能需要更大,下面是POI的write中调用InjectData的代码

版权声明:本文为博主原创文章未经博主允许不得转载。欢迎探讨 如果发现文章错误欢迎指出 /liangguangchuan/article/details/

//通过数字获取对应 列号

直接下载对应的phpExcel 的包就行了上
下载完成 把那个Classes 这個文件夹里面的 文件跟文件夹拿出来就好了。
我这边的这个方法是直接写到PHPExcel 这个文件里面的调用很简单。引入phpExcel 这个类传递对应的excel 文件的蕗径就好了

excel_data 这个变量里面保存的是 获取指定的 工作表数据

如果调用Load没有第二个参数默认是获取第一个工作表

如果要读取大文件,这种方法我不推荐如果说你要处理的excel超过2000行左右 你就会发现他调用Load方法的时候会很缓慢(我这边开启xdebug 发现读取200k的文件,debug log生成为 356mb 可怕)phpexcel 如果要处理嘚文件大于1mb的情况下 进行读取操作比较浪费系统资源。

如果有可能先转换为csv文件然后再进行读取操作。这么搞效率最少高了5倍以上

 
 
 
 
 
 
 * 使用CVS模式解决XLSX文件可以有效解決用户模式内存溢出的问题 
 * 该模式是POI官方推荐的读取大数据的模式,在用户模式下数据量较大、Sheet较多、或者是有很多无用的空行的情况 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 // 判断是否是日期格式 
 
 
 //判断单元格的值是否为空 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 * 初始化这个处理程序 将 
 
 
 
 
 
 

我要回帖

更多关于 excel找不到正在搜索的数据 的文章

 

随机推荐