06_Duplicate_Comparisons.php 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  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', 'Duplicates Comparison');
  25. $dataArray = [
  26. [1, 0, 3],
  27. [2, 1, 1],
  28. [3, 1, 4],
  29. [4, 2, 1],
  30. [5, 3, 5],
  31. [6, 5, 9],
  32. [7, 8, 2],
  33. [8, 13, 6],
  34. [9, 21, 5],
  35. [10, 34, 3],
  36. [11, 55, 5],
  37. ];
  38. $spreadsheet->getActiveSheet()
  39. ->fromArray($dataArray, null, 'A2', true);
  40. // Set title row bold
  41. $helper->log('Set title row bold');
  42. $spreadsheet->getActiveSheet()->getStyle('A1:C1')->getFont()->setBold(true);
  43. // Define some styles for our Conditionals
  44. $helper->log('Define some styles for our Conditionals');
  45. $yellowStyle = new Style(false, true);
  46. $yellowStyle->getFill()
  47. ->setFillType(Fill::FILL_SOLID)
  48. ->getEndColor()->setARGB(Color::COLOR_YELLOW);
  49. $yellowStyle->getFont()->setColor(new Color(Color::COLOR_BLUE));
  50. $greenStyle = new Style(false, true);
  51. $greenStyle->getFill()
  52. ->setFillType(Fill::FILL_SOLID)
  53. ->getEndColor()->setARGB(Color::COLOR_GREEN);
  54. $greenStyle->getFont()->setColor(new Color(Color::COLOR_DARKRED));
  55. // Set conditional formatting rules and styles
  56. $helper->log('Define conditional formatting and set styles');
  57. // Set rules for Duplicates Comparison
  58. $cellRange = 'A2:C12';
  59. $conditionalStyles = [];
  60. $wizardFactory = new Wizard($cellRange);
  61. /** @var Wizard\Duplicates $duplicatesWizard */
  62. $duplicatesWizard = $wizardFactory->newRule(Wizard::DUPLICATES);
  63. $duplicatesWizard->setStyle($yellowStyle);
  64. $conditionalStyles[] = $duplicatesWizard->getConditional();
  65. $duplicatesWizard->unique()
  66. ->setStyle($greenStyle);
  67. $conditionalStyles[] = $duplicatesWizard->getConditional();
  68. $spreadsheet->getActiveSheet()
  69. ->getStyle($duplicatesWizard->getCellRange())
  70. ->setConditionalStyles($conditionalStyles);
  71. // Save
  72. $helper->write($spreadsheet, __FILE__);