使用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是我想要实现的解决方案。