首页 > 技术文章 > 实现数据导出为.csv表格

echoppy 2017-08-23 16:32 原文

数据导出实现步骤:

      1.查找出要导出的数据,整理为二维数组。

      2.定义导出表格的字段

      3.将整理的二维数组按导出表格定义的字段重新整理。

      4.将整理的二维数组写入服务器中已有的一个.csv文件。

      5.用封装好的方法将其下载下来。

具体代码:   

//定义导出字段     
        $a_a=array();
    $b_a=array("姓名","手机","公司","身份证");
    foreach ($b_a as $key => $v) {
          //以gbk的编码方式编码,防止乱码
      $b_a[$key]=mb_convert_encoding($v,"gbk");
    }
    $a_a[]=$b_a;
//数据库查找要导出的数据
    $table_name="yijiu_members";
    $info_list=ugv::mod($table_name)->query("select * from oho_".$table_name." $_search_s order by id desc ")->result_array();
    foreach($info_list as $row ){
//导出身份证号码时,将其以字符串的形式导出,不然表格会将身份证号码以科学计数法的形式表示,且出现错误
$row["idcard"]="'".$row["idcard"]."'"; $b_a=array($row['isname'],$row['ismobile'],$row["iscompany"],$row["idcard"]); foreach ($b_a as $key => $v) { $b_a[$key]=mb_convert_encoding($v,"gbk"); } $a_a[]=$b_a; } $fh = fopen(ROOT_PATH.'files/tmp/2.csv','w'); //遍历将数据写入csv文件 foreach ($a_a as $a) { if (fputcsv($fh, $a) === false) { die("Can't write CSV line"); } } fclose($fh); $name="yijiumembers.csv"; //用封装好的方法将文件下载下来 files::down(ROOT_PATH.'files/tmp/2.csv',$name);

推荐阅读