32 lines
692 B
PHP
Raw Normal View History

2020-05-25 22:50:51 +08:00
<?php
2020-11-29 09:29:14 +08:00
declare(strict_types=1);
2020-05-25 22:50:51 +08:00
namespace catcher\library\excel;
use catcher\exceptions\FailedException;
use PhpOffice\PhpSpreadsheet\Writer\Csv;
use PhpOffice\PhpSpreadsheet\Writer\Xls;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
class Factory
{
2021-05-14 08:36:45 +08:00
public static function make($type, $spreadsheet)
2020-05-25 22:50:51 +08:00
{
if ($type === 'xlsx') {
2021-05-14 08:36:45 +08:00
return app(Xlsx::class)->setSpreadsheet($spreadsheet);
2020-05-25 22:50:51 +08:00
}
if ($type === 'xls') {
2021-05-14 08:36:45 +08:00
return new Xls($spreadsheet);
2020-05-25 22:50:51 +08:00
}
if ($type === 'csv') {
2021-05-14 08:36:45 +08:00
return (new Csv($spreadsheet))->setUseBOM('utf-8');
2020-05-25 22:50:51 +08:00
}
throw new FailedException(sprintf('Type [%s] not support', $type));
}
}