php如何將資料匯出成excel表格呢?

sfi799發表於2021-04-18

原創文章引自(https://www.ympfb.com/show-30-61-1.html)
php 開發匯出excel表格,程式碼如何寫呢?今天給大家分享這個,
我們想做的是 把資料庫裡的資料匯出,匯出成excel表格,按照我們的規則匯出成我們想要的樣子,下面直接給大家上原始碼,

php如何將資料匯出成excel表格呢?

這個是具體的邏輯程式碼


 $list = Db::table('form')->where('create_time', '>', $stat_time)->select()
      ->where('create_time','<',$end_time);
  if(empty($list)){
   echo "<script>alert('暫時無資料');window.history.back();</script>";
            exit();
  }
  //dump($list);die;
  foreach ($list as $key => $value) {
            $tuij=Db::table('form')->where('id',$value['id'])->find();
            $arr[$key]['username']=$tuij['username'];
            $arr[$key]['phone']=$tuij['phone'];
            $arr[$key]['source']=$tuij['source'];
            $arr[$key]['text']=$value['text'];
            $arr[$key]['create_time']=$value['create_time'];
        }
        if(empty($list)){
            echo "<script>alert('暫時無資料');window.history.back();</script>";
            exit();
        }
        //$list為所需要匯出的資料
        $header=array('姓名','電話','來源','留言','提交時間');
        $index=array('username','phone','source','text','create_time');
        $filename="表單落地頁有效推廣";
        $this->createtable($arr,$filename,$header,$index);
}

上面的程式碼中 最後一行 提到了一個方法createtable,這個是一個公共方法,大家可以放到公共類裡,也可以直接放在這個類裡,下面是原始碼


/**
     * 匯出公共方法
     *
     * @return \think\Response
     */
function createtable($list,$filename,$header,$index){ 
        header("Content-type:application/vnd.ms-excel"); 
        header("Content-Disposition:filename=".$filename.".xls"); 
        $teble_header = implode("\t",$header);
        $strexport = $teble_header."\r";
        foreach ($list as $row){ 
            foreach($index as $val){
                $strexport.=$row[$val]."\t";  
            }
            $strexport.="\r";

        } 
        $strexport=iconv('UTF-8',"GB2312//IGNORE",$strexport); 
        exit($strexport);
    }
``````php
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章