zoukankan      html  css  js  c++  java
  • laravel-phpspreadsheet 导入导出

            之前的excel导入导出用的是 MaatwebsiteExcel ,实际内部调用的还是 PhpOfficePhpSpreadsheet。并且可用方法太少了,如果导入大量数据,即使使用队列,在初次拉取数据的时候可能会超出内存限制报错。还不如直接使用PhpSpreadsheet。

            官方文档: https://phpspreadsheet.readthedocs.io/en/latest/

            相关代码

    $file = base_path('storage/app/public/'.$curfile);       // 保存或生成文件完整路径
    if(file_exist($file)){
        $spreadsheet = PhpOfficePhpSpreadsheetIOFactory::load($file);//如果文件存在则直接载入
        $sheet = $spreadsheet->getActiveSheet();//获取活动的工作sheet
    }else{
        $spreadsheet = new PhpOfficePhpSpreadsheetSpreadsheet();//文件不存在则实例化一个新的文件
        $sheet = $spreadsheet->getActiveSheet();
        $sheet->setCellValue('A1', '订单号');//新文件需要设置头部
        $sheet->setCellValue('B1', '支付金额');
        $sheet->setCellValue('C1', '购买数量');
        $sheet->setCellValue('D1', '单价');
    }
    $row = 1;//记录行数
    foreach ($orders as $key => $value) {// 写入数据
            $sheet->setCellValue('A'.($row+1), $value->order_id.',');
            $sheet->setCellValue('B'.($row+1), $order_code.',');
            $sheet->setCellValue('C'.($row+1), $value->num);
            $row++;
    }
    $writer = new PhpOfficePhpSpreadsheetWriterXlsx($spreadsheet);
    $writer->save($file);//写入excel文件并保存
    
    // ....执行其他代码
    // 更新导出记录表
    // 如果是大量数据,则可以通过递归,再创建新队列,记录写入数据

    大致代码如上。更多方法查看文档

  • 相关阅读:
    线性代数:矩阵行列式
    线性代数:逆变换
    线性代数:线性变换
    线性代数:零空间
    线性代数:向量乘法
    线性代数基础:向量组合
    线性代基础理论:向量
    线性代基础理论:矩阵
    SpringBoot 消费NSQ消息
    将Oracle中的数据放入elasticsearch
  • 原文地址:https://www.cnblogs.com/mengwangchuan/p/10600194.html
Copyright © 2011-2022 走看看