• laravel实现十几万数据直接浏览器导出csv文件 able


    public function export(Request $request)
    {
      // 查询数据库数据
      $list = .....;
      $this->userListExport($list);
    }

    public function userListExport($list)
    {
    // 导出充值记录的头部信息
    $cell = ['头像', '微信昵称', '备注', ];

    $cellData = [];
    foreach ($list as &$value) {
           // 填充数据
    $cellData[] = ([
    '',
    '',
    '',
    ]);
    }
    $this->exportUser($cell, $cellData);
    }


    public function exportUser($cell, $data, $title = '客户列表')
    {
    header('Content-Type: application/vnd.ms-excel');
    header('Content-Disposition: attachment;filename="' . $title . '.csv"');
    header('Cache-Control: max-age=0');

    set_time_limit(0); // 设置脚本最大执行时间 为0
    ini_set('memory_limit', '1024M'); // 临时设置最大内存占用

    // 打开PHP文件句柄,php://output 表示直接输出到浏览器
    $fp = fopen('php://output', 'a');

    $column_name = [];
    // 将中文标题转换编码,否则乱码
    foreach ($cell as $i => $v) {
    $column_name[$i] = iconv('utf-8', 'GBK//IGNORE', $v);
    }

    // 将标题名称通过fputcsv写到文件句柄
    fputcsv($fp, $column_name);
    foreach ($data as $row) {
    foreach ($row as $key => $item) {
    $row[$key] = iconv('utf-8', 'GBK//IGNORE', $item);
    }
    fputcsv($fp, $row);
    }
    $res = ['file' => $title];
    return response()->json($res);
    }
  • 相关阅读:
    面向报文(UDP)和面向字节流(TCP)的区别
    c++ 字符串和数字拼接
    OpenGL中着色器,渲染管线,光栅化
    阅读计划
    课堂测试
    多态与异常处理
    《大道至简》第七八章读后感
    继承与接口课堂作业
    《大道至简》第六章读后感
    随机数组
  • 原文地址:https://www.cnblogs.com/jiaoda/p/15671505.html
Copyright © 2020-2023  润新知