laravel导出excel文件
安装代码包
composer require maatwebsite/excel
导出多个 sheet
// ExportMulSheets.php
namespace App\Exports;
use Maatwebsite\Excel\Concerns\Exportable;
use Maatwebsite\Excel\Concerns\WithMultipleSheets;
class ExportMulSheets implements WithMultipleSheets
{
use Exportable;
private $size;
private $myArray;
private $myHeadings;
private $sheetNames;
private $columns;
public function __construct($size, $myArray, $myHeadings, $sheetNames, $columns)
{
$this->size = $size;
$this->myArray = $myArray;
$this->myHeadings = $myHeadings;
$this->sheetNames = $sheetNames;
$this->columns = $columns;
}
/**
* @return array
*/
public function sheets(): array
{
$sheets = [];
for ($i = 0; $i < $this->size; $i++) {
$sheets[] = new ExportSheet($this->myArray[$i], $this->myHeadings[$i], $this->sheetNames[$i], $this->columns[$i]);
}
return $sheets;
}
}
导出 sheet
//ExportSheet.php
namespace App\Exports;
use Maatwebsite\Excel\Concerns\WithHeadings;
use Maatwebsite\Excel\Concerns\FromArray;
use Maatwebsite\Excel\Concerns\WithTitle;
use Maatwebsite\Excel\Concerns\ShouldAutoSize;
use PhpOffice\PhpSpreadsheet\Style\NumberFormat;
use Maatwebsite\Excel\Concerns\WithColumnFormatting;
class ExportSheet implements FromArray, WithHeadings, WithTitle, ShouldAutoSize, WithColumnFormatting
{
private $myArray;
private $myHeadings;
private $title;
private $columns;
public function __construct($myArray, $myHeadings, $title, $columns = [])
{
$this->myArray = $myArray;
$this->myHeadings = $myHeadings;
$this->title = $title;
$this->columns = $columns;
}
public function array(): array
{
return $this->myArray;
}
public function headings(): array
{
return $this->myHeadings;
}
public function title(): string
{
return $this->title;
}
public function columnFormats(): array
{
return $this->columns;
}
}
excel 导出下载
use App\Exports\ExportMulSheets;
use Maatwebsite\Excel\Facades\Excel;
use PhpOffice\PhpSpreadsheet\Style\NumberFormat;
$columns = ['F' => NumberFormat::FORMAT_PERCENTAGE_00]; //用于sheet列的格式设定
$excel = Excel::download(new ExportMulSheets(1, [$data], [$header], [$sheetName], [$columns]), $xlsFileName);
return $excel;
浙公网安备 33010602011771号