0

次のような Excel ファイルがあります: Excel の例

私が行うとき、列 F、G 、H 、J を読みたい:

              for ($i = 3; $i <= $data->sheets[0]['numRows']; $i++) {
                error_log(
                    FW_Class_Voucher_Code::cleanCode($data->sheets[0]['cells'][$i][6]).' - '.
                    FW_Class_Voucher_Code::cleanCode($data->sheets[0]['cells'][$i][7]).' - '.
                    FW_Class_Voucher_Code::cleanCode($data->sheets[0]['cells'][$i][8]).' - '.
                    FW_Class_Voucher_Code::cleanCode($data->sheets[0]['cells'][$i][9]));
                $count++;
                }

エラーが発生するという問題があります。

PHP 通知: 未定義のオフセット: 7 PHP 通知: 未定義のオフセット: 8 PHP 通知: 未定義のオフセット: 9

F 列は常にいっぱいですが、ご覧のとおり、他の列には問題があります。データが入力されている場合にのみフィールドがチェックされるように、このエラーを回避するにはどうすればよいですか?

4

2 に答える 2

1
  for ($i = 3; $i <= $data->sheets[0]['numRows']; $i++) {
    $err=array;
    for($j=6; $j<=9; $j++){
      if(isset(FW_Class_Voucher_Code::cleanCode($data->sheets[0]['cells'][$i][$j])))
         $err[]=FW_Class_Voucher_Code::cleanCode($data->sheets[0]['cells'][$i][$j]) ;
    }
    if(!empty($err){
      $msg=implode('-',$err);
      error_log($msg);
    } 
    $count++; //I don't know what you're using $count for
  } 
于 2012-10-24T12:34:53.840 に答える
0
    if (isset($data->sheets[0]['cells'][$i][7])) {
                        $col7 = $data->sheets[0]['cells'][$i][7];
                    } else {
                        $col7 = '';
                    }
                    if (isset($data->sheets[0]['cells'][$i][8])) {
                        $col8 = $data->sheets[0]['cells'][$i][8];
                    } else {
                        $col8 = '';
                    }
                    if (isset($data->sheets[0]['cells'][$i][9])) {
                        $col9 = $data->sheets[0]['cells'][$i][9];
                    } else {
                        $col9 = '';
                    }

本当に醜く見えますが、うまくいきます。

于 2012-10-24T12:23:55.677 に答える