03_Blank_Comparisons.php 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. <?php
  2. use PhpOffice\PhpSpreadsheet\Spreadsheet;
  3. use PhpOffice\PhpSpreadsheet\Style\Color;
  4. use PhpOffice\PhpSpreadsheet\Style\ConditionalFormatting\Wizard;
  5. use PhpOffice\PhpSpreadsheet\Style\Fill;
  6. use PhpOffice\PhpSpreadsheet\Style\Style;
  7. require __DIR__ . '/../Header.php';
  8. // Create new Spreadsheet object
  9. $helper->log('Create new Spreadsheet object');
  10. $spreadsheet = new Spreadsheet();
  11. // Set document properties
  12. $helper->log('Set document properties');
  13. $spreadsheet->getProperties()->setCreator('Mark Baker')
  14. ->setLastModifiedBy('Mark Baker')
  15. ->setTitle('PhpSpreadsheet Test Document')
  16. ->setSubject('PhpSpreadsheet Test Document')
  17. ->setDescription('Test document for PhpSpreadsheet, generated using PHP classes.')
  18. ->setKeywords('office PhpSpreadsheet php')
  19. ->setCategory('Test result file');
  20. // Create the worksheet
  21. $helper->log('Add data');
  22. $spreadsheet->setActiveSheetIndex(0);
  23. $spreadsheet->getActiveSheet()
  24. ->setCellValue('A1', 'Blank Comparison');
  25. $dataArray = [
  26. ['HELLO', null],
  27. [null, 'WORLD'],
  28. ];
  29. $spreadsheet->getActiveSheet()
  30. ->fromArray($dataArray, null, 'A2', true);
  31. // Set title row bold
  32. $helper->log('Set title row bold');
  33. $spreadsheet->getActiveSheet()->getStyle('A1:B1')->getFont()->setBold(true);
  34. // Define some styles for our Conditionals
  35. $helper->log('Define some styles for our Conditionals');
  36. $greenStyle = new Style(false, true);
  37. $greenStyle->getFill()
  38. ->setFillType(Fill::FILL_SOLID)
  39. ->getEndColor()->setARGB(Color::COLOR_GREEN);
  40. $greenStyle->getFont()->setColor(new Color(Color::COLOR_DARKRED));
  41. $redStyle = new Style(false, true);
  42. $redStyle->getFill()
  43. ->setFillType(Fill::FILL_SOLID)
  44. ->getEndColor()->setARGB(Color::COLOR_RED);
  45. $redStyle->getFont()->setColor(new Color(Color::COLOR_GREEN));
  46. // Set conditional formatting rules and styles
  47. $helper->log('Define conditional formatting and set styles');
  48. // Set rules for Blank Comparison
  49. $cellRange = 'A2:B3';
  50. $conditionalStyles = [];
  51. $wizardFactory = new Wizard($cellRange);
  52. /** @var Wizard\Blanks $blanksWizard */
  53. $blanksWizard = $wizardFactory->newRule(Wizard::BLANKS);
  54. $blanksWizard->setStyle($redStyle);
  55. $conditionalStyles[] = $blanksWizard->getConditional();
  56. $blanksWizard->notBlank()
  57. ->setStyle($greenStyle);
  58. $conditionalStyles[] = $blanksWizard->getConditional();
  59. $spreadsheet->getActiveSheet()
  60. ->getStyle($blanksWizard->getCellRange())
  61. ->setConditionalStyles($conditionalStyles);
  62. // Save
  63. $helper->write($spreadsheet, __FILE__);