加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_丽江站长网 (http://www.0888zz.com/)- 科技、建站、数据工具、云上网络、机器学习!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

分析PHP如何高效导出Excel

发布时间:2022-07-16 16:08:11 所属栏目:PHP教程 来源:互联网
导读:PHP高效导出Excel(CSV) CSV,是Comma Separated Value(逗号分隔值)的英文缩写,通常都是纯文本文件。 如果你导出的Excel没有什么高级用法的话,只是做导出数据用那么建议使用本方法,要比PHPexcel要高效的多。 二十万数据导出大概需要2到3秒。 /** * 导出ex
  PHP高效导出Excel(CSV)
  CSV,是Comma Separated Value(逗号分隔值)的英文缩写,通常都是纯文本文件。
 
  如果你导出的Excel没有什么高级用法的话,只是做导出数据用那么建议使用本方法,要比PHPexcel要高效的多。
 
  二十万数据导出大概需要2到3秒。
  
 
  /**
 
   * 导出excel(csv)
 
   * @data 导出数据
 
  
   */
 
  function csv_export($data = array(), $headlist = array(), $fileName) {
 
     
 
      header('Content-Type: application/vnd.ms-excel');
 
      header('Content-Disposition: attachment;filename="'.$fileName.'.csv"');
 
      header('Cache-Control: max-age=0');
 
     
 
      //打开PHP文件句柄,php://output 表示直接输出到浏览器
 
      $fp = fopen('php://output', 'a');
 
       
 
      //输出Excel列名信息
 
      foreach ($headlist as $key => $value) {
 
          //CSV的Excel支持GBK编码,一定要转换,否则乱码
 
          $headlist[$key] = iconv('utf-8', 'gbk', $value);
 
      }
 
     
 
      //将数据通过fputcsv写到文件句柄
 
      fputcsv($fp, $headlist);
 
       
 
      //计数器
 
      $num = 0;
 
       
 
      //每隔$limit行,刷新一下输出buffer,不要太大,也不要太小
 
      $limit = 100000;
  
          $num++;
 
           
 
          //刷新一下输出buffer,防止由于数据过多造成问题
 
          if ($limit == $num) {
 
              ob_flush();
 
              flush();
 
              $num = 0;
 
          }
 
           
 
          $row = $data[$i];
 
          foreach ($row as $key => $value) {
 
              $row[$key] = iconv('utf-8', 'gbk', $value);
 
          }
 
   
 
          fputcsv($fp, $row);
 
      }
 
    }

(编辑:应用网_丽江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读