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文件并保存
    
    // ....执行其他代码
    // 更新导出记录表
    // 如果是大量数据,则可以通过递归,再创建新队列,记录写入数据

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

  • 相关阅读:
    快速排序算法
    excel取值
    5.管理控制文件和日志文件
    贝叶斯决策与参数估计小结
    Kernel Methods (5) Kernel PCA
    Kernel Methods (4) Kernel SVM
    Kernel Methods (3) Kernel Linear Regression
    Kernel Methods (2) Kernel function
    Kernel Methods (1) 从简单的例子开始
    PCA算法是怎么跟协方差矩阵/特征值/特征向量勾搭起来的?
  • 原文地址:https://www.cnblogs.com/mengwangchuan/p/10600194.html
Copyright © 2011-2022 走看看