如何使用php spreadsheet 导出多sheet操作

php laravel spreadsheet 导出多sheet操作

如何使用php spreadsheet 导出多sheet操作

phpspreadsheet是phpexcel的进阶版 , 目前技术文档较少 , 在实际应用中遇到导出多sheet的情况尝试之后找到解决方案,如下:
下面展示一些 内联代码片

// An highlighted block
public function exportPost(){
        $spreadsheet = new Spreadsheet();
        $exPortData = $this->exPortData();
        self::setSheet($exPortData, $spreadsheet);
        $fileName = 'test.xlsx';
        $writer = new Xlsx($spreadsheet);
        $fileUrl = $fileName;
        $writer->save($fileUrl);
        die;
}
public static function setSheet($data, $spreadsheet)
{
        foreach ($data as $sheetKey => $sheetValue) {
            //设置所操纵的sheet
            $sheet = $spreadsheet->createSheet($sheetKey)->setTitle($sheetValue['sheet_title']);
            //创建设置header
            foreach ($sheetValue['header'] as $hk => $hv) {
                $sheet->setCellValue($hk . (1), $hv);
            }
            //获取所需的列
            $cellName = array_keys($sheetValue['header']);
            $i = 1;
            //处理导出数据
            foreach ($sheetValue['export_data'] as $v) {
                $i++;
                //循环设置列所需要的值
                foreach ($cellName as $name) {
                    $sheet->setCellValue($name . $i, $v[$sheetValue['keys'][$name]]);
                }
            }
        }
}
    
public function exPortData(){
        $data = [
            [
                'header' => ['A' => '标题11', 'B' => '标题11', 'C' => '标题11'],
                'keys' => ['A' => 'data', 'B' => 'data', 'C' => 'raw_text'],
                'sheet_title' => '123',
                'export_data' => [
                    [
                        'data' => '1111',
                        'raw_text' => 2222
                    ],
                    [
                        'data' => '2222',
                        'raw_text' => 3333
                    ],
                    [
                        'data' => '3333',
                        'raw_text' => 3333
                    ]
                ]
            ], [
                'header' => ['A' => '标题22', 'B' => '标题22', 'C' => '标题22'],
                'keys' => ['A' => 'data', 'B' => 'data', 'C' => 'raw_text'],
                'sheet_title' => '223',
                'export_data' => [
                    [
                        'data' => '1111',
                        'raw_text' => 2222
                    ],
                    [
                        'data' => '2222',
                        'raw_text' => 3333
                    ],
                    [
                        'data' => '3333',
                        'raw_text' => 3333
                    ]
                ]
            ]
        ];
        return $data;
}

好了 以上就是我的Excel多sheet导出,有帮助的可以点个赞哈哈

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值