PHP 导出CSV格式

原生PHP 导出CSV格式文件

public function exportCSV(){
    //示例数组数据
    $new_arr = array(
        array(
            'gw_name'   => '123',
            'zw_name'   => '345',
            'score'     => '67.6',
        ),
        array(
            'gw_name'   => 'ABC',
            'zw_name'   => '345',
            'score'     => '67.6',
        ),
        array(
            'gw_name'   => 'DEF',
            'zw_name'   => '345',
            'score'     => '67.6',
        ),
        array(
            'gw_name'   => 'EFG',
            'zw_name'   => '345',
            'score'     => '67.6',
        ),
    );
    //处理遍历数据格式放入新的数组$res
    foreach($new_arr as $k => $v){
        $res['allList'][$k] = array(
            'gw_name'  => $v['gw_name'],
            'zw_name'  => $v['zw_name'],
            'score'    => $v['score'],
        );
    }
    //定义表头 (表头要和上面的$res['allList']数据相对应)
    $res['title'] = array(
        'gw_name'  => '岗位名称',
        'zw_name'  => '职位名称',
        'score'    => '分数',
    );
    $headerList = array(); //定义表头
    $machineData = array(); //定义数据
    //处理表头放入新的数组中
    foreach ($res['title'] as $k => $v){
        $headerList[] = $v;
    }
    //处理数据放入新的数组中
    foreach ($res['allList'] as $k => $v){
        foreach ($v as $key => $val){
            $machineData[$k][] = $val;
        }
    }
    $result = array();
    // 打开文件资源,不存在则创建
    $time = time();
    $fileName = date('Ym',time()).$time;
    //导出文件地址 ./表示当前服务器地址
    $des_file = './Uploads/CSV/'.$fileName.'_export.csv';
    $fp = fopen($des_file,'a');
    // 处理头部标题
    $header = implode(',', $headerList) . PHP_EOL;
    // 处理内容
    $content = '';
    foreach ($machineData as $k => $v) {
        $content .= implode(',', $v) . PHP_EOL;
    }
    // 拼接
    $csv = $header.$content;
    // 写入并关闭资源
    fwrite($fp, $csv);
    fclose($fp);
    //把文件输出到下载
    // $file = fopen($des_file,"r"); // 打开文件
    // $size=filesize($des_file);
    // Header("Content-type: application/octet-stream");
    // Header("Accept-Ranges: bytes");
    // Header("Accept-Length: ".$size);
    // Header("Content-Disposition: attachment; filename=download.csv");
    // echo fread($file,$size);
    // fclose($file);
    $result['status'] = 200;
    $result['msg'] = '成功';
    //打印csv文件的地址
    $result['url'] = 'https://************/Uploads/CSV/'.$fileName.'_export.csv';
    $this->ajaxReturn($result,'JSON');
}

亲测有效~ 如有不好用的下方评论改正

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值