1
使用PHPExcel,我有一個getHighestRow()函數的問題。如果電子表格被格式化爲最後一個數據條目之外,最高行不會反映數據輸入,但包括格式化在內的單元格修改。'getHighestRow'沒有考慮到格式化
如何獲得有用的行數,意味着只有那些非空數據的行數?
到目前爲止,我使用下面的代碼作爲替補,但我不是很滿意加載整個第一列:
$file = $fileForm->get('file')->getData();
$path = $file->getRealPath();
$phpExcel = $this->get('phpexcel')->createPHPExcelObject($path);
$worksheet = $phpExcel->getSheet();
$firstColumn = $worksheet->rangeToArray("A1:A" . $worksheet->getHighestRow(), null, false, false);
$firstColumn = array_map(function(Array $lines) {
return array_values($lines)[0];
}, $firstColumn);
$highestRow = count(array_filter($firstColumn));
unset($firstColumn);
嗯,我會喜歡它的工作,但事實並非如此。如果我有一個工作表包含超出最後一行包含數據的格式化,它仍然超出最後一行包含數據:-( –
我非常懷疑......它可能會通過最後一行包含___visible___數據,但一個Excel單元格可能包含一個空字符串或空字符串 –
我剛剛通過$ highestRow = $ worksheet-> getHighestDataRow()更改了我的代碼,並且我的值爲1000,而我的文件是284。從285行到999行,沒有數據,只有一條格式 –