我使用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列,我如何一次检查每列。
答案 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...
}