Excel выбор листа при импорте laravel

195
03 августа 2018, 12:00

Как сделал выборку листов при импорте из Excel файла в бд laravel. На данный момент мой импорт:

$data = Excel::load($path, function ($reader) {
})->get();

Дальше перебираем $data и добавляем в бд, но переборка уже происходит на 1 листе, как указать например второй лист?

foreach ($data as $object) {
  //$object->name....
}
Answer 1
$data = Excel::load($path, function ($reader) {
})->get();
$pages = $data->all();

Сейчас в $pages уже лежат листы, соответственно $pages[0] - первый $pages[1] - второй.
Перебор.

foreach($pages[1]->all() as $row){
  dd($row->all()); // вставляем в бд
}
Answer 2

Вот пример получения данных с конкретного листа Excel документа

Excel::load($destinationPath . $filename, function($reader) use (&$excel) {
               $objExcel = $reader->getExcel();
               $sheet = $objExcel->getSheet(0);
               $highestRow = $sheet->getHighestRow();
               $highestColumn = $sheet->getHighestColumn();
               //  Loop through each row of the worksheet in turn
               for ($row = 1; $row <= $highestRow; $row++)
               {
                  //  Read a row of data into an array
                  $rowData = $sheet->rangeToArray('A' . $row . ':' . $highestColumn . $row, NULL, TRUE, FALSE);
                  $excel[] = $rowData[0];
               }
    });

А вот так можно перебрать все листы

Excel::load(MyExcelClass::getFile(), function ($reader) {
    foreach($reader as $sheet) // loop through sheets
    {
         $highestRow = $sheet->getHighestRow();
         $highestColumn = $sheet->getHighestColumn();
         //  Loop through each row of the worksheet in turn
         for ($row = 1; $row <= $highestRow; $row++)
         {
             //  Read a row of data into an array
             $rowData = $sheet->rangeToArray('A' . $row . ':' . $highestColumn . $row, NULL, TRUE, FALSE);
             $excel[] = $rowData[0];
         }
    }
});
READ ALSO
Doctrine не подтягивать все связи

Doctrine не подтягивать все связи

Например, когда я пишу так: $users = $this->getDoctrine()->getRepository('ProfileBundle:User')->findBy(['deletedAt' => null]); то к модели пользователя подтягиваются все связанные...

151
Генерация картинки с помощью php [дубликат]

Генерация картинки с помощью php [дубликат]

На данный вопрос уже ответили:

190
Warning: mail(): Multiple or malformed newlines found in additional_header

Warning: mail(): Multiple or malformed newlines found in additional_header

Помогите пофиксить ошибку, вот код отправки письма

207
Yii2 вывод данных из связанных страниц

Yii2 вывод данных из связанных страниц

Как вывести данные из трех связанных таблиц ?

216