如果值为空,PHPExcel_shared_date::ExcelToPHP将返回当前日期


PHPExcel_shared_date::ExcelToPHP returns Current Date if value is Empty

我使用PHPExcel将数据从excel导入PHP。

在这一点上,我使用PHPExcel_shared_date::ExcelToPHP获得了一个日期列,如果我在单元格中放入有效日期,这是正确的,但问题是,如果在导入时将其设为空,则会占用当前日期。

    for ($row = 2; $row <= $highestRow + 1; $row++) {
        $date_cell = $ci->excel->setActiveSheetIndex(0)->getCell('D' . $row)->getValue();
        //echo $date_cell;
        if ($row == $highestRow + 1 || in_array($row, $merge_row)) {
            if (isset($detail_array) && !empty($detail_array))
                $data[] = $detail_array;
        }
        if (in_array($row, $merge_row)) {
            $i = 0;
            $detail_array = array();
            $detail_array['account'] = $ci->excel->setActiveSheetIndex(0)->getCell("A" . $row)->getvalue();
        } else {
            for ($col = 0; $col < count($field); $col++) {
                $val = $workSheet->getCellByColumnAndRow($col, $row)->getValue();
                if ($value_cell && $val) {
                        $detail_array['detail'][$i][$field[$col]] = $val;
                        $detail_array['detail'][$i]['date'] = date('d-m-y', PHPExcel_Shared_Date::ExcelToPHP($date_cell));
                }
            }
            $i++;
        }
    }
    print_r($data);

非常感谢您的帮助,谢谢!

流程中有问题,您可能不得不这样做:

    for ($row = 2; $row <= $highestRow + 1; $row++) {
        if ($row == $highestRow + 1 || in_array($row, $merge_row)) {
            if (isset($detail_array) && !empty($detail_array))
                $data[] = $detail_array;
        }
        if (in_array($row, $merge_row)) {
            $i = 0;
            $detail_array = array();
            $detail_array['account'] = $ci->excel->setActiveSheetIndex(0)->getCell("A" . $row)->getvalue();
        } else {
            $alpha = "A";
            for ($col = 0; $col < count($field); $col++) {
                $val = $workSheet->getCellByColumnAndRow($col, $row)->getValue();
                $detail_array['detail'][$i][$field[$col]] = "";
                if ($value_cell && $val && trim($val) != "") {
                    if (PHPExcel_Shared_Date::isDateTime($ci->excel->setActiveSheetIndex(0)->getCell($alpha . $row)))
                        $detail_array['detail'][$i][$field[$col]] = date('d-m-y', PHPExcel_Shared_Date::ExcelToPHP($val));
                    else
                        $detail_array['detail'][$i][$field[$col]] = $val;
                }
                $alpha++;
            }
            $i++;
        }
  }
  print_r($data);