使用 header函数实现文件下载

    //下载excel模板
    public function excelTemplate(){
        header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
        header('Content-Disposition: attachment;filename="excel导入模板.xlsx'); //文件名称
        header('Cache-Control: max-age=0');
        readfile(realpath(__ROOT__).'/Public/excelTemplate.xlsx');
        exit;
    }

  

//生成数据输出Excel,输出PDF文件同理可推。

    /**
     * 创建(导出)Excel数据表格
     * @param  array   $list 要导出的数组格式的数据
     * @param  string  $filename 导出的Excel表格数据表的文件名
     * @param  array   $header Excel表格的表头
     * @param  array   $index $list数组中与Excel表格表头$header中每个项目对应的字段的名字(key值)
     * 比如: $header = array('编号','姓名','性别','年龄');
     *       $index = array('id','username','sex','age');
     *       $list = array(array('id'=>1,'username'=>'YQJ','sex'=>'男','age'=>24));
     * @return [array] [数组]
     * $filename = '提现记录'.date('YmdHis');
        $header = array('会员','编号','联系电话','开户名','开户行','申请金额','手续费','实际金额','申请时间');
        $index = array('username','vipnum','mobile','checkname','bank','money','handling_charge','real_money','applytime');
        $this->createtable($cash,$filename,$header,$index);
     */
    public function createtable($list,$filename,$header=array(),$index = array()){
        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);
    }

  

posted @ 2018-03-21 11:00  xc_flying  阅读(548)  评论(0编辑  收藏  举报