phpexcel在插入数据库之前忽略空行或过滤器数组

时间:2019-05-28 14:33:30

标签: mysql import codeigniter-3 phpexcel

使用phpexcel将Excel导入数据库。 当我的Excel电子表格的行高更改时,它将导入整个空行。

1)解决方案是要小心,不要在我不想导入的行中进行任何更改。 2)从数据库导入后删除,其中字段A(varchar)为空,但id将自动递增,因此我的id在经过几次使用后将到达屋顶。 3)尝试在列值为空时在phpexcel中进行过滤。 4)尝试过滤数组,然后再插入db somethimg,例如字符串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)插入数据库后,通过删除操作,我的id值会自动增加,并且会因导入错误而增长。 3,4是我想要实现的解决方案。

0 个答案:

没有答案