2015-07-20 60 views
0

我在PHP上使用PHPExcel和TCPDF完成了一個程序。我可以根據他們所在的列選擇excel文件中列出的公司。 我正在跟蹤已經定義的列之間和行之間的公司,我可以掃描到「下一個公司的名稱」。這樣我就可以在屏幕上打印出來。在excel文件中打印最後一個公司

我上傳的截圖我的excel文件看起來像... enter image description here

我檢索從Excel中的數據文件後,它看起來像 enter image description here

然而,當我最後選擇公司,因爲沒有「下一個公司」,它不返回結果;相反,它給出了一個錯誤。

我的問題:我該如何控制「最後的公司」並像其他人那樣打印出來。我無法爲最後一個提供特殊條件。我的代碼

相關的部分看起來像這樣:

if(isset($_POST['submit'])) 
    { 
     $selected_val = $_POST['my_select']; // Storing Selected Value In Variable 
     $only_row = explode('.',$selected_val); 
     //echo "You have selected :" .$selected_val. "<br />"; // Displaying Selected Value 
     //echo "selected row value :".$only_row[1]. "<br />"; this shows selected company's row number 
     for($i=0; $i< $count; $i++) 
     { 
      if ($comp[$i][2]== $only_row[1]) 
      { 
       $info_end=($comp[$i+1][2]-1);// here table ends before the next company's name begins 

      } 

     } 
    } 
    else{error_reporting(E_ALL^E_NOTICE);}  
    $rowCompanyInfoStart = $only_row[1]+2; 
    $rowCompanyInfoEnd = $info_end; 
    $colCompanyInfoStart = 'C'; 
    $colCompanyInfoEnd = 'M'; 

PS:我們將不勝感激,如果你能給出一個明確的答案。

如果問題不明確,請告訴我。

+0

有太多的未知數在你分享的代碼中給出更多猜測 – RiggsFolly

回答

1

您所要做的只是在$i上進行測試,因爲您在$i = $count-1時無法訪問$comp[$i+1][2]-1

所以做不同的事情,如果這是最後一行:

for($i=0; $i< $count; $i++) { 
    if ($comp[$i][2]== $only_row[1]) { 
     // line found 
     if($i == ($count - 1)) { 
      // what you want to do on last line... 
     } else { 
      // what to do normally 
      $info_end=($comp[$i+1][2]-1); 
     } 
    } 
} 
+1

完美!非常感謝......這就是我所問的 – gobo

0

感謝@Random 這裏是我的例外完整的解決方案的上個公司

if(isset($_POST['submit'])) 
     { 
      $selected_val = $_POST['my_select']; // Storing Selected Value In Variable 

      $only_row = explode('.',$selected_val); 
      //echo "You have selected :" .$selected_val. "<br />"; // Displaying Selected Value 
      //var_dump($only_row); 
      //echo "selected row value :".$only_row[1]. "<br />"; 

      for($i=0; $i< $count; $i++) { 
     if ($comp[$i][2]== $only_row[1]) { 

      // line found 

       if($i == ($count - 1)) { 

        // what you want to do on last line... 

          $info_end=($objPHPExcel->setActiveSheetIndex(0)->getHighestRow());    
        } 

       else { 

      $info_end=($comp[$i+1][2]-1); 
     } 
    } 
} 
     }