查看: 1547|回复: 0

[PHP实例] php 导出 excel 大数据量

发表于 2018-3-13 08:00:11

最近在做导出数据,用项目中的phpexcel类导出,因为数据量非常大。所以导出数据的时候经常遇到问题,有时php内存溢出,有时请求超时。所以 在网上找了大量的资料自己弄了一个导出实例,仅供参考,大佬勿喷 代码入下

  1. set_time_limit(0); //防止请求超时
  2. $title= [
  3. 'ID', 'title','汉字', //excel 表头
  4. ];
  5. $path = 'D:/wamp/www/'; //定义下载文件路径
  6. $csvFileName = $path .'log' . date('Ymd') . '.csv';
  7. //打开文件写入
  8. $fp = fopen($csvFileName, 'w');
  9. mb_convert_variables('GBK', 'UTF-8', $title); //汉字编码转换
  10. fputcsv($fp, $columns);//写入表头
  11. $totalData = 1000000;//从数据库获取总量,假设是100w
  12. $pageSize = 1000;//每次查询的条数
  13. $pages = ceil($totalData / $pageSize); //求出总页数分页查询数据
  14. for($i = 1; $i <= $pages; $i++) {
  15. /*$data = 从数据库中查出来的数据;
  16. foreach($data as $value) {
  17. $rowData = [
  18. ......//每一行的数据
  19. ];
  20. */
  21. $rowData = [rand(1,99),time(),'汉字']; //测试数据
  22. mb_convert_variables('GBK', 'UTF-8', $rowData);
  23. //写入一行数据
  24. fputcsv($fp, $rowData);
  25. //unset($data);//释放变量的内存 以防内存溢出
  26. }
  27. fclose($fp); //关闭资源 下载完成
  28. exit();
复制代码


回复

使用道具 举报