打印 excel 文件中的最后一家公司

printing last company in the excel file

我在 PHP 上使用 PHPExcel 和 TCPDF 完成了一个程序。我可以根据所在的列在 excel 文件中列出 select 家公司。 我在已经定义的列之间和我可以扫描到 "next company's name" 的行之间跟踪公司。这样我就可以在屏幕上打印出来了。

我上传了我的 excel 文件的截图...

在我从 excel 文件中检索数据后,它看起来像

然而,当我select上次公司时,由于没有"next company",所以没有return结果;相反,它给出了一个错误。

我的问题: 我如何控制 "last company" 并像其他人一样打印出来。我不能为最后一个设置特殊条件。

我的代码的相关部分如下所示:

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:如能明确答复,将不胜感激

如果问题有什么不清楚的地方,请告诉我。

您只需在 $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);
        }
    }
}

感谢@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);
        }
    }
}
        }