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

时间:2015-07-20 09:04:34

标签: php phpexcel tcpdf

我在PHP上使用PHPExcel和TCPDF完成了一个程序。我可以根据它们所在的列选择excel文件中列出的公司。 我正在跟踪已经定义的列之间和行之间的公司,我可以扫描到#34;下一个公司的名称"。这样我就可以在屏幕上打印出来了。

我上传了我的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:如果你能给出一个明确的答案,我将不胜感激。

如果问题不清楚,请告诉我。

2 个答案:

答案 0 :(得分:1)

您需要做的就是对$i进行测试,因为$comp[$i+1][2]-1时您无法访问$i = $count-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 :(得分: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);
        }
    }
}
        }