excel操作手记
csv操作
$fp = fopen($filePath, 'a+'); fputcsv($fp, ['a' => 'a', 'b' => 'b']);
问题:Excel 已经检测到"xxx.xsl"是SYLK文件,但是不能将其加载解决方法
解决:如果将ID中的任意字母换成小写都不会出现此问题,估计是固定的识别“ID”或“ID_XXXX”
maatwebsite/excel 扩展
https://github.com/maatwebsite/Laravel-Excel
https://segmentfault.com/a/1190000014734174?utm_source=index-hottest
引入服务
$app->register(\Maatwebsite\Excel\ExcelServiceProvider::class);
定义类
use Maatwebsite\Excel\Concerns\FromCollection; use Maatwebsite\Excel\Concerns\WithHeadings; class logExcelExport implements FromCollection, WithHeadings { public $data; public function __construct($data) { $this->data = collect($data); } public function collection() { return $this->data; } public function headings(): array { return [ 'ID', '标识', '备注', '创建时间', '更新时间', ]; } }
调用
Excel::store(new logExcelExport($data), $filePath);
新3.1.25版本支持导入功能
Excel::toArray($import, $path);
可能会遇到
mkdir(): No such file or directory
https://github.com/Maatwebsite/Laravel-Excel/issues/3011
是由于lumen和laravel不同,需要在storage下手动创建framework文件夹