ReadBlankCellsTest.php 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. <?php
  2. namespace PhpOffice\PhpSpreadsheetTests\Functional;
  3. use PhpOffice\PhpSpreadsheet\Spreadsheet;
  4. class ReadBlankCellsTest extends AbstractFunctional
  5. {
  6. public function providerSheetFormat(): array
  7. {
  8. return [
  9. ['Xlsx'],
  10. ['Xls'],
  11. // ['Ods'], // Broken. Requires fix in Ods reader.
  12. // ['Csv'], // never reads blank cells
  13. // ['Html'], // never reads blank cells
  14. ];
  15. }
  16. /**
  17. * Test generate file with some empty cells.
  18. *
  19. * @dataProvider providerSheetFormat
  20. *
  21. * @param mixed $format
  22. */
  23. public function testXlsxLoadWithNoBlankCells($format): void
  24. {
  25. $spreadsheet = new Spreadsheet();
  26. $spreadsheet->getActiveSheet()->getCell('B2')->setValue('');
  27. $spreadsheet->getActiveSheet()->getCell('C1')->setValue('C1');
  28. $spreadsheet->getActiveSheet()->getCell('C3')->setValue('C3');
  29. $reloadedSpreadsheet = $this->writeAndReload($spreadsheet, $format);
  30. self::assertTrue($reloadedSpreadsheet->getActiveSheet()->getCellCollection()->has('B2'));
  31. self::assertFalse($reloadedSpreadsheet->getActiveSheet()->getCellCollection()->has('C2'));
  32. self::assertTrue($reloadedSpreadsheet->getActiveSheet()->getCellCollection()->has('C3'));
  33. $reloadedSpreadsheet = $this->writeAndReload($spreadsheet, $format, function ($reader): void {
  34. $reader->setReadEmptyCells(false);
  35. });
  36. self::assertFalse($reloadedSpreadsheet->getActiveSheet()->getCellCollection()->has('B2'));
  37. self::assertFalse($reloadedSpreadsheet->getActiveSheet()->getCellCollection()->has('C2'));
  38. self::assertTrue($reloadedSpreadsheet->getActiveSheet()->getCellCollection()->has('C3'));
  39. }
  40. }