ColumnIterator отсутствует, поэтому вам придется делать это вручную.
Для любого данного рабочего листа:
Чтобы зациклить строки для столбца:
$column = 'A';
$lastRow = $worksheet->getHighestRow();
for ($row = 1; $row <= $lastRow; $row++) {
$cell = $worksheet->getCell($column.$row);
// Do what you want with the cell
}
Чтобы зациклить столбцы в строке, вы можете воспользоваться возможностью PHP в стиле Perls для приращения символов:
$row = 1;
$lastColumn = $worksheet->getHighestColumn();
$lastColumn++;
for ($column = 'A'; $column != $lastColumn; $column++) {
$cell = $worksheet->getCell($column.$row);
// Do what you want with the cell
}
Обратите внимание, что при сравнении букв столбцов для проверки последнего столбца в цикле мы не можем просто использовать <или <=, потому что сравниваем строки, и "B"> "AZ" в стандартном сравнении строк, поэтому мы используем сравнение! =, увеличивая максимальное значение столбца, чтобы получить идентификатор первого столбца после конечной точки.
Вы также можете использовать
$worksheet->cellExists($column.$row);
в цикле для проверки существования ячейки перед доступом к ней с помощью getCell () (или нет) для эмуляции поведения итератора getIterateOnlyExistingCells ()
Итераторы на самом деле довольно медленные, поэтому вы можете обнаружить, что эти простые циклы быстрее, чем при использовании итераторов.
ОБНОВЛЕНИЕ (2015-05-06)
В PHPExcel версии 1.8.1 появился новый итератор столбцов. Итераторы Row и Column также позволяют указывать диапазон строк или столбцов для итерации и позволяют использовать prev () и next () при циклическом просмотре