在php

时间:2016-07-27 04:40:17

标签: php excel

我使用PHPExcel_IOFactory在PHP中上传excel,在excel中有一些列应该是强制填充的,如B,D,I,J等。

我需要首先更改B列,如果其空白则应发生错误,否则检查D列,如果出现空白错误,则检查更多列。

我写了下面的代码,但我没有一次检查一列:

 $allDataInSheet = $objPHPExcel->getActiveSheet()->toArray(null,true,true,true);
 $arrayCount = count($allDataInSheet); 
 for($i=2;$i<=$arrayCount;$i++){
    $b = $allDataInSheet[$i]["B"];
    $d = $allDataInSheet[$i]["D"];
    $i = $allDataInSheet[$i]["I"];
 }

必须列出近20列,我如何一次检查每列。

1 个答案:

答案 0 :(得分:0)

小心点。您在$i行中使用了for($i=2...,但是使用$i = $allData...将其设置为循环内的其他内容。

为了满足您的要求(包括从第2行开始),这就是我要做的事情

$firstK = key($allDataInSheet); //save the first key

foreach($allDataInSheet as $k => $row){
    if($k===$firstK) continue; //skip the first row

    if(empty($b = $row['B'])){
        // Error. column B is empty
    }elseif(empty($c = $row['C'])){
        // B is not empty. $b has its contents
        // however, Error: column C is empty
    }elseif(empty($i = $row['I'])){
        // B and C are not empty. $b and $c have their contents
        // however, Error: column I is empty
    ...
    }else{
        // All required columns have data
        // $b, $c ... $i ... hold the contents
    }

    //...continue processing the row. You can use variables $b, $c...
}