3
我試圖找到列中的第一個空白單元格。我的想法是選擇一個我知道必須具有值的列(在本例中爲JOB_NUMBER),並掃描它直到找到空白單元格。在我看來,我的代碼應該這樣做。但是,它永遠不會停止。我想它被困在while
循環中,但我不明白爲什麼。PHPExcel - 使用空白單元格查找第一列
代碼:
<?php
require('./Classes/PHPExcel/IOFactory.php');
ini_set('max_execution_time', 800);
ini_set('memory_limit', 2000000000);
$inputFileType = 'Excel2007';
$inputFileName = $_FILES['file']['tmp_name'];
class MyReadFilter implements PHPExcel_Reader_IReadFilter {
public function __construct($fromColumn, $toColumn) {
$this->columns = array();
$toColumn++;
while ($fromColumn !== $toColumn) {
$this->columns[] = $fromColumn++;
}
}
public function readCell($column, $row, $worksheetName = '') {
// Read columns from 'A' to 'AF'
if (in_array($column, $this->columns)) {
return true;
}
return false;
}
}
$filterSubset = new MyReadFilter('A', 'AF');
$objReader = PHPExcel_IOFactory::createReader($inputFileType);
$objReader->setReadFilter($filterSubset);
$objReader->setLoadSheetsOnly(array("NORTH"));
$objPHPExcelReader = $objReader->load($inputFileName);
$r = 3500;
while(isset($maxrow_north) != 1){
$cellvalue = $objPHPExcelReader->getSheetByName('NORTH')->getCellByColumnAndRow(2, $r);
if(isset($cellvalue) != 1){
$maxrow_north = $r;
} elseif($r > 4000) {
echo "It's over 4000!";
} else {
$r = $r++;
}
}
echo $maxrow_north;
?>
一些更多的背景
我有管理員上傳.xlsx
.xls
或.csv
文件轉換成HTML表單。上面的代碼是處理程序。我限制了列的數量,因爲.xlsx
文件的原始創建者認爲將列全部導出到XCF是一個好主意。
行也一路走到10000左右的地方。所以,我想找到第一個空白行並停在那裏。
TIA!