laravel Spreadsheet 导出excel表格

12 篇文章 0 订阅
6 篇文章 0 订阅

坑:调用这个方法不能用ajax,如果用了ajax会在network里看到一堆乱码不会下载excel。
用a标签直接调用方法就行

引入类库

use PhpOffice\PhpSpreadsheet\IOFactory;
use PhpOffice\PhpSpreadsheet\Spreadsheet;

使用

 public function downloadExcel(Request $request){
 $spreadsheet = new Spreadsheet();
 $sheet = $spreadsheet->getActiveSheet();
 //设置sheet的名字  两种方法
        $spreadsheet->getActiveSheet()->setTitle('Hello');
//设置第一行小标题
        $k = 1;
        $sheet->setCellValue('A'.$k, '商品名称');
        $sheet->setCellValue('B'.$k, '价格');
        $sheet->setCellValue('C'.$k, '分类');
        $sheet->setCellValue('D'.$k, '描述');
        $info = array(
            ['goods_name'=>'内衣','price'=>'11','category'=>'性感内衣','desc'=>'1111'],
            ['goods_name'=>'裙子','price'=>'80','category'=>'齐B短裙','desc'=>'1111'],
            ['goods_name'=>'裤子','price'=>'60','category'=>'七分裤','desc'=>'1111'],
            ['goods_name'=>'袜子','price'=>'70','category'=>'连体丝袜','desc'=>'1111']
        );
        $k = 2;
        foreach ($info as $key => $value) {
            $sheet->setCellValue('A' . $k, $value['goods_name']);
            $sheet->setCellValue('B' . $k, $value['price']);
            $sheet->setCellValue('C' . $k, $value['category']);
            $sheet->setCellValue('D' . $k, $value['desc']);
            $k++;
        }
        $file_name = date('Y-m-d', time()).rand(1000, 9999);
        $file_name = $file_name . ".xlsx";
        header('Content-Type: application/vnd.ms-excel');
        header('Content-Disposition: attachment;filename="'.$file_name.'"');
        header('Cache-Control: max-age=0');
        $writer = IOFactory::createWriter($spreadsheet, 'Xlsx');
        $writer->save('php://output');
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值