Как получить указанные c столбцы в Laravel [Maatwebsite / Laravel -Excel] - PullRequest
0 голосов
/ 28 февраля 2020

импортируемый мной файл содержит тысячи записей, что приводит к замедлению работы моей сети. Я хочу прочитать только те столбцы, которые мне нужны, прежде чем вставить его в базу данных. Когда файл обрабатывается, он должен сначала искать эти столбцы, а не весь файл, и извлекать строки этих столбцов

Excel::load($path, function($reader) {

//Getting headers using this


       $headers = $reader->first()->keys()->toArray();

//This is the array of required columns

       $headings = array('registrant_name','registrant_address','registrant_phone','registrant_zip','registrant_email','registrant_country','registrant_state','registrant_city');


});

Вставка данных после чтения файла.

 if($data->count() > 0)
             {
              foreach($data->toArray() as $value)
              {
                $insert[] = array(
                 'registrant_name'  => $value['registrant_name'],
                 'registrant_address'   => $value['registrant_address'],
                 'registrant_phone'   => $value['registrant_phone'],
                 'registrant_zip'   => $value['registrant_zip'],
                 'registrant_email'   => $value['registrant_email'],
                 'registrant_country'   => $value['registrant_country'],
                 'registrant_state'   => $value['registrant_state'],
                 'registrant_city'   => $value['registrant_city']

                );                
               }
              }


      if(!empty($insert))
      {
       DB::table('customers')->insert($insert);
      }    

1 Ответ

0 голосов
/ 28 февраля 2020

В коллекциях вы можете проверить метод только документация

т.е.

$headers = $reader->first()->only(['registrant_name','registrant_address','registrant_phone','registrant_zip','registrant_email','registrant_country','registrant_state','registrant_city']);

Вы также можете использовать chunk , чтобы вставить данные в меньшие коллекции, чем в одну большую.

Не могли бы вы обновить пост с помощью класса App \ Import, чтобы помочь вам больше.

...