76 lines
2.1 KiB
PHP
76 lines
2.1 KiB
PHP
|
<?php
|
||
|
|
||
|
namespace PhpOffice\PhpSpreadsheetTests\Worksheet;
|
||
|
|
||
|
use PhpOffice\PhpSpreadsheet\Spreadsheet;
|
||
|
use PhpOffice\PhpSpreadsheet\Worksheet\ColumnCellIterator;
|
||
|
use PHPUnit\Framework\TestCase;
|
||
|
|
||
|
class ColumnCellIterator2Test extends TestCase
|
||
|
{
|
||
|
/**
|
||
|
* @dataProvider providerExistingCell
|
||
|
*/
|
||
|
public function testEndRange(?bool $existing, string $expectedResultFirst, string $expectedResultLast): void
|
||
|
{
|
||
|
$spreadsheet = new Spreadsheet();
|
||
|
$sheet = $spreadsheet->getActiveSheet();
|
||
|
$sheet->getCell('B2')->setValue('cellb2');
|
||
|
$sheet->getCell('B6')->setValue('cellb6');
|
||
|
|
||
|
$iterator = new ColumnCellIterator($sheet, 'B', 1, 8);
|
||
|
if (isset($existing)) {
|
||
|
$iterator->setIterateOnlyExistingCells($existing);
|
||
|
}
|
||
|
$lastCoordinate = '';
|
||
|
$firstCoordinate = '';
|
||
|
foreach ($iterator as $cell) {
|
||
|
$lastCoordinate = $cell->getCoordinate();
|
||
|
if (!$firstCoordinate) {
|
||
|
$firstCoordinate = $lastCoordinate;
|
||
|
}
|
||
|
}
|
||
|
self::assertEquals($expectedResultFirst, $firstCoordinate);
|
||
|
self::assertEquals($expectedResultLast, $lastCoordinate);
|
||
|
}
|
||
|
|
||
|
public function providerExistingCell(): array
|
||
|
{
|
||
|
return [
|
||
|
[null, 'B1', 'B8'],
|
||
|
[false, 'B1', 'B8'],
|
||
|
[true, 'B2', 'B6'],
|
||
|
];
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @dataProvider providerEmptyColumn
|
||
|
*/
|
||
|
public function testEmptyColumn(?bool $existing, int $expectedResult): void
|
||
|
{
|
||
|
$spreadsheet = new Spreadsheet();
|
||
|
$sheet = $spreadsheet->getActiveSheet();
|
||
|
$sheet->getCell('B2')->setValue('cellb2');
|
||
|
$sheet->getCell('B6')->setValue('cellb6');
|
||
|
|
||
|
$iterator = new ColumnCellIterator($sheet, 'C');
|
||
|
if (isset($existing)) {
|
||
|
$iterator->setIterateOnlyExistingCells($existing);
|
||
|
}
|
||
|
$numCells = 0;
|
||
|
foreach ($iterator as $cell) {
|
||
|
++$numCells;
|
||
|
}
|
||
|
self::assertEquals($expectedResult, $numCells);
|
||
|
}
|
||
|
|
||
|
public function providerEmptyColumn(): array
|
||
|
{
|
||
|
return [
|
||
|
[null, 6],
|
||
|
[false, 6],
|
||
|
[true, 0],
|
||
|
];
|
||
|
}
|
||
|
}
|