laravel-phpspreadsheet 导入导出

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

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

        相关代码

$file = base_path('storage/app/public/'.$curfile);       // 保存或生成文件完整路径
if(file_exist($file)){
    $spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($file);//如果文件存在则直接载入
    $sheet = $spreadsheet->getActiveSheet();//获取活动的工作sheet
}else{
    $spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet();//文件不存在则实例化一个新的文件
    $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 \PhpOffice\PhpSpreadsheet\Writer\Xlsx($spreadsheet);
$writer->save($file);//写入excel文件并保存

// ....执行其他代码
// 更新导出记录表
// 如果是大量数据,则可以通过递归,再创建新队列,记录写入数据

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

 

转载于:https://www.cnblogs.com/mengwangchuan/p/10600194.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值