• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    原生PHP实现导出csv格式Excel文件的方法示例【附源码下载】

    本文实例讲述了原生PHP实现导出csv格式Excel文件的方法。分享给大家供大家参考,具体如下:

    效果图

    源码分析

    index.php

    ?php
    require_once "./Export.php";
    //测试数据
    $headerList= ['列名1','列名2','列名3'];
    $data = [
      ['值1','值2','值3'],
      ['值11','值22','值33'],
      ['值111','值222','值333']
    ];
    $fileName = "测试导出文件名";
    $tmp = ['备份字段1','备份值1','','备份字段2','备份值2'];
    $export = new Export();
    $result = $export->exportToCsv($headerList,$data,$fileName,$tmp);
    
    

    Export.php

    ?php
    class export{
      /**
       * params $headerList 头部列表信息(一维数组) 必传
       * params $data 导出的数据(二维数组)  必传
       * params $filename 文件名称转码 必传
       * params $tmp 备用信息(二维数组) 选传
       * PS:出现数字格式化情况,可添加看不见的符号,使其正常,如:"\t"
       **/
      public function exportToCsv($headerList = [] , $data = [] , $fileName = '' , $tmp = []){
        //文件名称转码
        $fileName = iconv('UTF-8', 'GBK', $fileName);
        //设置header头
        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");
        //备用信息
        foreach ($tmp as $key => $value) {
          $tmp[$key] = iconv("UTF-8", 'GBK', $value);
        }
        //使用fputcsv将数据写入文件句柄
        fputcsv($fp, $tmp);
        //输出Excel列表名称信息
        foreach ($headerList as $key => $value) {
          $headerList[$key] = iconv('UTF-8', 'GBK', $value);//CSV的EXCEL支持BGK编码,一定要转换,否则乱码
        }
        //使用fputcsv将数据写入文件句柄
        fputcsv($fp, $headerList);
        //计数器
        $num = 0;
        //每隔$limit行,刷新一下输出buffer,不要太大亦不要太小
        $limit = 100000;
        //逐行去除数据,不浪费内存
        $count = count($data);
        for($i = 0 ; $i  $count ; $i++){
          $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);
        }
      }
    }
    
    

    附:完整实例代码点击此处本站下载

    更多关于PHP相关内容感兴趣的读者可查看本站专题:《php操作office文档技巧总结(包括word,excel,access,ppt)》、《PHP数组(Array)操作技巧大全》、《PHP数据结构与算法教程》、《php程序设计算法总结》、《PHP数学运算技巧总结》、《php正则表达式用法总结》、《php字符串(string)用法总结》及《php常见数据库操作技巧汇总》

    希望本文所述对大家PHP程序设计有所帮助。

    您可能感兴趣的文章:
    • PHP实现实时生成并下载超大数据量的EXCEL文件详解
    • php下载excel无法打开的解决方法
    • php导入导出excel实例
    • 基于php导出到Excel或CSV的详解(附utf8、gbk 编码转换)
    • php将数据库导出成excel的方法
    • 使用PHPExcel实现数据批量导出为excel表格的方法(必看)
    • PHP导出MySQL数据到Excel文件(fputcsv)
    • PHP中ajax无刷新上传图片与图片下载功能
    • PHP使用ajax的post方式下载excel文件简单示例
    上一篇:PHP生成二维码与识别二维码的方法详解【附源码下载】
    下一篇:PHP模糊查询技术实例分析【附源码下载】
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    原生PHP实现导出csv格式Excel文件的方法示例【附源码下载】 原生,PHP,实现,导出,csv,格式,