PHPExcel-避免在导入后在数据库中存储空单元格

PHPExcel-避免在导入后在数据库中存储空单元格,php,phpexcel,phpexcelreader,Php,Phpexcel,Phpexcelreader,我是PHPExcel的新手,不知道您是否能帮助我完成下面的代码 使用PHPExcel导出工作非常完美,但当我导入xls或xlsx文档时,它存储了工作表的内容(这是我想要的),但也从一个包含4行数据的工作表中向数据库插入了近200个空白条目 我已经在互联网上搜索了很长一段时间,但似乎找不到解决这个问题的方法 请参见下面的我的代码: $storedir = "../uploads/". $_FILES['file']['name']; $store = move_up

我是PHPExcel的新手,不知道您是否能帮助我完成下面的代码

使用PHPExcel导出工作非常完美,但当我导入xls或xlsx文档时,它存储了工作表的内容(这是我想要的),但也从一个包含4行数据的工作表中向数据库插入了近200个空白条目

我已经在互联网上搜索了很长一段时间,但似乎找不到解决这个问题的方法

请参见下面的我的代码:

        $storedir = "../uploads/". $_FILES['file']['name'];
        $store = move_uploaded_file($_FILES['file']['tmp_name'], $storedir);

        $filename =  $_FILES['file']['name'];
        $srow = $_POST['srow'];

        if ($store) {   
        $objPHPExcel = PHPExcel_IOFactory::load($storedir);
        foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) {
        $highestRow         = $worksheet->getHighestRow();
        $highestColumn      = $worksheet->getHighestColumn();
        $highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);
        $nrColumns = ord($highestColumn) - 64;

        for ($row = $srow; $row <= $highestRow-2; ++ $row) {
            $val=array();

            for ($col = 1; $col < $highestColumnIndex; ++ $col) {
                $cell = $worksheet->getCellByColumnAndRow($col, $row);
                $val[] = $cell->getValue();
        }
$savetodb = mysql_query("INSERT INTO `students` (`gender`, `name`, `surname`) VALUES ('".$val[1]."','".$val[2]."','".$val[3]."')") or die (mysql_error());
} 
  }
} 
$storedir=“../uploads/”$_文件['file']['name'];
$store=move_上传的_文件($_文件['file']['tmp_name']],$storedir);
$filename=$_文件['file']['name'];
$srow=$_POST['srow'];
如果($store){
$objPHPExcel=PHPExcel\u IOFactory::load($storedir);
foreach($objPHPExcel->getWorksheetIterator()作为$worksheet){
$highestRow=$worksheet->getHighestRow();
$highestColumn=$worksheet->getHighestColumn();
$highestColumnIndex=PHPExcel_单元::columnIndexFromString($highestColumn);
$nrColumns=ord($highestColumns)-64;
for($row=$srow;$row getCellByColumnRow($col,$row);
$val[]=$cell->getValue();
}
$savetodb=mysql\u query(“插入到`students`(`gender`、`name`、`name`)值(''.$val[1].''.'、'.$val[2].''.''.'.''.'.$val[3].''))或die(mysql\u error());
} 
}
} 
我没有为PHPExcel类和IOFactories添加连接代码和include,尽管它们在代码中


如果您能提供任何帮助,我们将不胜感激。

您能否回传$highestRow PLESETE尽管该工作表只有4个条目$HIGHESTCLUMN='N';$HIGHESTCLUMNINDEX='14',但我发现创建的空单元格是由excel文件中带边框的单元格造成的。导入的文件包含如果有必要,可以将带有边框的空单元格添加到列表中。但是这些空单元格在导入时会作为值添加。是否有方法忽略它们?您是否有任何需要的值?性别名称或姓氏?