2014-09-05 86 views
1

我已經使用PHPExcel將數據從excel導入到PHP。PHPExcel_shared_date :: ExcelToPHP返回當前日期如果值爲空

在這我得到使用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); 

您的幫助,將不勝感激,謝謝!

回答

2

有問題的流動,你可能需要做這樣的:

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); 
+0

是的,你可能有流問題。首先做文書工作,以便於解決。 – 2014-09-05 10:42:23

相關問題