| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- <?php
-
- namespace Maatwebsite\Excel;
-
- use Illuminate\Support\Collection;
- use Maatwebsite\Excel\Concerns\ToArray;
- use Maatwebsite\Excel\Concerns\ToCollection;
- use Maatwebsite\Excel\Concerns\ToModel;
- use Maatwebsite\Excel\Concerns\WithCalculatedFormulas;
- use Maatwebsite\Excel\Concerns\WithMappedCells;
- use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
-
- class MappedReader
- {
- /**
- * @param WithMappedCells $import
- * @param Worksheet $worksheet
- *
- * @throws \PhpOffice\PhpSpreadsheet\Exception
- */
- public function map(WithMappedCells $import, Worksheet $worksheet)
- {
- $mapped = [];
- foreach ($import->mapping() as $name => $coordinate) {
- $cell = Cell::make($worksheet, $coordinate);
-
- $mapped[$name] = $cell->getValue(
- null,
- $import instanceof WithCalculatedFormulas
- );
- }
-
- if ($import instanceof ToModel) {
- $model = $import->model($mapped);
-
- if ($model) {
- $model->saveOrFail();
- }
- }
-
- if ($import instanceof ToCollection) {
- $import->collection(new Collection($mapped));
- }
-
- if ($import instanceof ToArray) {
- $import->array($mapped);
- }
- }
- }
|