DefaultFillTest.php 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. <?php
  2. namespace PhpOffice\PhpSpreadsheetTests\Reader\Xlsx;
  3. use PhpOffice\PhpSpreadsheet\IOFactory;
  4. use PHPUnit\Framework\TestCase;
  5. class DefaultFillTest extends TestCase
  6. {
  7. public function testDefaultFill(): void
  8. {
  9. // default fill pattern doesn't specify filltype
  10. $filename = 'tests/data/Reader/XLSX/pr1769g.py.xlsx';
  11. $file = 'zip://';
  12. $file .= $filename;
  13. $file .= '#xl/styles.xml';
  14. $data = file_get_contents($file);
  15. // confirm that file contains expected empty xml tag
  16. if ($data === false) {
  17. self::fail('Unable to read file');
  18. } else {
  19. self::assertStringContainsString('<patternFill/>', $data);
  20. }
  21. $reader = IOFactory::createReader('Xlsx');
  22. $spreadsheet = $reader->load($filename);
  23. $sheet = $spreadsheet->getActiveSheet();
  24. self::assertSame('none', $sheet->getCell('A1')->getStyle()->getFill()->getFillType());
  25. self::assertSame('none', $sheet->getCell('D4')->getStyle()->getFill()->getFillType());
  26. self::assertSame('none', $sheet->getCell('J16')->getStyle()->getFill()->getFillType());
  27. self::assertSame('solid', $sheet->getCell('C2')->getStyle()->getFill()->getFillType());
  28. }
  29. public function testDefaultConditionalFill(): void
  30. {
  31. // default fill pattern for a conditional style where the filltype is not defined
  32. $filename = 'tests/data/Reader/XLSX/pr2050cf-fill.xlsx';
  33. $reader = IOFactory::createReader('Xlsx');
  34. $spreadsheet = $reader->load($filename);
  35. $style = $spreadsheet->getActiveSheet()->getConditionalStyles('A1')[0]->getStyle();
  36. self::assertSame('solid', $style->getFill()->getFillType());
  37. }
  38. }