PhpSpreadsheet/tests/PhpSpreadsheetTests/Functional/ReadBlankCellsTest.php

47 lines
1.7 KiB
PHP

<?php
namespace PhpOffice\PhpSpreadsheetTests\Functional;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
class ReadBlankCellsTest extends AbstractFunctional
{
public function providerSheetFormat()
{
return [
['Xlsx'],
['Xls'],
// ['Ods'], // Broken. Requires fix in Ods reader.
// ['Csv'], // never reads blank cells
// ['Html'], // never reads blank cells
];
}
/**
* Test generate file with some empty cells.
*
* @dataProvider providerSheetFormat
*
* @param mixed $format
*/
public function testXlsxLoadWithNoBlankCells($format): void
{
$spreadsheet = new Spreadsheet();
$spreadsheet->getActiveSheet()->getCell('B2')->setValue('');
$spreadsheet->getActiveSheet()->getCell('C1')->setValue('C1');
$spreadsheet->getActiveSheet()->getCell('C3')->setValue('C3');
$reloadedSpreadsheet = $this->writeAndReload($spreadsheet, $format);
self::assertTrue($reloadedSpreadsheet->getActiveSheet()->getCellCollection()->has('B2'));
self::assertFalse($reloadedSpreadsheet->getActiveSheet()->getCellCollection()->has('C2'));
self::assertTrue($reloadedSpreadsheet->getActiveSheet()->getCellCollection()->has('C3'));
$reloadedSpreadsheet = $this->writeAndReload($spreadsheet, $format, function ($reader): void {
$reader->setReadEmptyCells(false);
});
self::assertFalse($reloadedSpreadsheet->getActiveSheet()->getCellCollection()->has('B2'));
self::assertFalse($reloadedSpreadsheet->getActiveSheet()->getCellCollection()->has('C2'));
self::assertTrue($reloadedSpreadsheet->getActiveSheet()->getCellCollection()->has('C3'));
}
}