phpexcel игнорирует пустые строки или массив фильтров перед вставкой в ​​БД - PullRequest
0 голосов
/ 28 мая 2019

Импорт Excel в БД с phpexcel.Когда у меня есть таблица Excel с измененной высотой строки, она импортирует всю пустую строку.

1) Решением является осторожность и отсутствие каких-либо изменений в строках, которые я не хочу импортировать.2) Удалить после импорта из БД, где поле A (varchar) пусто, но id будет автоматически инкрементно, так что мой идентификатор перейдет на крышу после нескольких использований.3) Попробуйте отфильтровать в phpexcel, когда значения столбца пустые.4) Попробуйте отфильтровать массив перед вставкой в ​​базу данных, например, где строка A - пустой массив удаления.этот, я считаю, наиболее перспективный.

КОНТРОЛЛЕР

$objPHPExcel = PHPExcel_IOFactory::load($path);
 $objPHPExcel->getSheetCount();
$worksheet = $objPHPExcel->getSheet(0);

            {



                $highestRow = $worksheet->getHighestRow();
                $highestColumn = $worksheet->getHighestColumn();
                 //  return $worksheet->rangeToArray("B1:$highestColumn$highestRow", null, true, false, false);
                for($row=2; $row<=$highestRow; $row++)
                {

             $id= $worksheet->getCellByColumnAndRow(0,$row)->getFormattedValue(); //Excel Column 0
              $id_cod_obra= $worksheet->getCellByColumnAndRow(1,$row)->getFormattedValue(); //Excel Column 0
              $nome= $worksheet->getCellByColumnAndRow(2,$row)->getValue(); //Excel Column 1
                  $codigoean=$worksheet->getCellByColumnAndRow(9,$row)->getFormattedValue(); //Excel Column 10



                    $data[] = array(

                        'id'                =>  $id,
                        'id_cod_obra'       =>  $id_cod_obra,

                        'codigoean'         =>  $codigoean,

                    );
                }
            }



            $this->excel_import_model2->insert($data);

            //Delete empty rows in DB where id_cod_obra is empty but id will autoincrement
        //  $this->db->select('id');
        //  $this->db->where('id_cod_obra', '');
        //  $this->db->delete('peca');

МОДЕЛЬ

    function insert($data)
    {
        $this->db->insert_batch('peca', $data);
    }

1) Если я удаляю высоту строки и любое форматирование в пустые строки, этоработает 2) С delete после вставки в db мое значение id автоинкрементно начнет расти с ошибками в импорте.3,4 - это решение, которого я пытаюсь достичь.

...