我在PHP上使用PHPExcel和TCPDF完成了一个程序。我可以根据它们所在的列选择excel文件中列出的公司。 我正在跟踪已经定义的列之间和行之间的公司,我可以扫描到#34;下一个公司的名称"。这样我就可以在屏幕上打印出来了。
我上传了我的excel文件的截图...
从excel文件中检索数据后,它看起来像
然而,当我选择上一家公司,因为没有"下一家公司",它没有返回结果;相反,它给出了一个错误。
我的问题:我如何控制"最后一家公司"并像其他人一样打印出来。我无法为最后一个条件提供特殊条件。
我的代码的相关部分如下所示:
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 :(得分: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);
}
}
}
}