[php] thinkphp使用csv导出excel表格


本文介绍使用csv来代替phpExcel来实现表格导出,借鉴了他人的总结大笑


Csv.class.php下载


下载完后,把Csv.class.php放到Think目录下


调用代码:

这里要注意的是field()字段选择一定要传

<?php namespace Home\Controller;
use Think\Controller;
use Think\Csv;
class IndexController extends Controller {

    public function index(){
        $csv = new Csv();
        $list=M("list")->field('id, title, content, date')->limit(100)->select();
        $csv_title = array('id','标题','内容','日期');
        $csv->put_csv($list,$csv_title);
   }
}

对应的数据表:

[php] thinkphp使用csv导出excel表格_第1张图片


导出的excel表:

[php] thinkphp使用csv导出excel表格_第2张图片


附加:

Csv.class.php内容

<?php namespace Think;
class Csv
{
   //导出csv文件  public function put_csv($list,$title){
       $file_name="CSV".date("mdHis",time()).".csv";
       header ( 'Content-Type: application/vnd.ms-excel' );
       header ( 'Content-Disposition: attachment;filename='.$file_name );
       header ( 'Cache-Control: max-age=0' );
       $file = fopen('php://output',"a");
       $limit=1000;
       $calc=0;
       foreach ($title as $v){
          $tit[]=iconv('UTF-8', 'GB2312//IGNORE',$v);
       }
       fputcsv($file,$tit);
       foreach ($list as $v){
          $calc++;
          if($limit==$calc){
             ob_flush();
             flush();
             $calc=0;
          }
          foreach ($v as $t){
             $tarr[]=iconv('UTF-8', 'GB2312//IGNORE',$t);
          }
          fputcsv($file,$tarr);
          unset($tarr);
       }
       unset($list);
       fclose($file);
       exit();
   }
}
?>


谢谢关注~



你可能感兴趣的:(thinkphp,csv)