php使用fputcsv进行大数据的导出

   public function export(){
        header('Content-Type: application/vnd.ms-excel');
        header('Content-Disposition: attachment;filename=xxxxxxxxx.csv');
        header('Cache-Control: max-age=0');

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

//关闭缓冲区
        $flag = ob_end_clean();
        if (!$flag) {
            die("关闭缓冲区错误");
        }

        $startTime = microtime(true);

//$status = ob_get_status();
//file_put_contents("11.log", var_export($status, 1).PHP_EOL, 8);

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

        $column_name = ["ID", "姓名", "手机号", "描述", "添加时间"];
// 将中文标题转换编码,否则乱码
 //       foreach ($column_name as $i => $v) {
 //           $column_name[$i] = iconv('utf-8', 'GBK', $v);
 //       }

// 将标题名称通过fputcsv写到文件句柄
        fputcsv($fp, $column_name);
        $export_data = [];
        $start = 0;
        $limit = 5000000;
        $column_name = db('test_export')->limit($start,$limit)->select();
      
            if(empty($column_name) || !$column_name){
                break;
            }
            if($start >5){
                break;
            }

            foreach ($column_name as $k => $v) {
                $export_data[] = [
                    $v['id'], $v['name'],$v['phone'],$v['des'],$v['addtime']
                ];
            }
            foreach ($export_data as $item) {
                $rows = array();
                foreach ($item as $export_obj) {
                    $rows[] = iconv('utf-8', 'GBK', $export_obj);
                }
                fputcsv($fp, $rows);
            }
            $export_data = []; //重新复制,释放掉旧数据

            $start += $limit;
      
        fclose($fp);
        exit(0);
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用 EasyPoi 进行多 Sheet 大数据导出的示例代码如下: ```java // 导入所需的依赖 import cn.afterturn.easypoi.excel.ExcelExportUtil; import cn.afterturn.easypoi.excel.entity.ExportParams; import org.apache.poi.ss.usermodel.Workbook; // 创建一个 Workbook 对象 Workbook workbook = ExcelExportUtil.exportBigExcel(new ExportParams("多 Sheet 大数据导出", "Sheet1"), User.class, userList1); // 添加第二个 Sheet ExcelExportUtil.addSheet(workbook, new ExportParams("Sheet2", "Sheet2"), User.class, userList2); // 将 Workbook 写入输出流 OutputStream outputStream = response.getOutputStream(); workbook.write(outputStream); // 关闭输出流 outputStream.close(); ``` 以上代码中,我们首先创建了一个 Workbook 对象,并指定了导出的文件名和 Sheet 名称。然后,我们使用 `ExcelExportUtil.addSheet()` 方法添加了第二个 Sheet。最后,将 Workbook 写入输出流中,完成导出操作。 请注意,以上代码只是一个简单的示例,实际的多 Sheet 大数据导出需要根据具体的业务需求和数据格式进行调整和修改。你可以参考 EasyPoi 的官方文档获取更多详细的使用方法和示例。 #### 引用[.reference_title] - *1* *2* *3* [使用easyPoi 进行多sheet大数据导出](https://blog.csdn.net/weixin_47809085/article/details/129790872)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值