使用 header函数实现文件下载

本文介绍了一种使用PHP实现Excel数据导出的方法,并提供了下载Excel模板的功能。通过设置HTTP头部信息及利用PHP内置函数处理文件读取,实现了简单的导出功能。文章还包含了具体的代码示例。
    //下载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);
    }

  

转载于:https://www.cnblogs.com/xie-xiao-chao/p/8615744.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值