Search moodle.org's
Developer Documentation

See Release Notes

  • Bug fixes for general core bugs in 4.0.x will end 8 May 2023 (12 months).
  • Bug fixes for security issues in 4.0.x will end 13 November 2023 (18 months).
  • PHP version: minimum PHP 7.3.0 Note: the minimum PHP version has increased since Moodle 3.10. PHP 7.4.x is also supported.

Differences Between: [Versions 310 and 400] [Versions 39 and 400]

   1  <?php
   2  
   3  namespace PhpOffice\PhpSpreadsheet;
   4  
   5  use PhpOffice\PhpSpreadsheet\Cell\Coordinate;
   6  use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
   7  
   8  class NamedRange extends DefinedName
   9  {
  10      /**
  11       * Create a new Named Range.
  12       */
  13      public function __construct(
  14          string $name,
  15          ?Worksheet $worksheet = null,
  16          string $range = 'A1',
  17          bool $localOnly = false,
  18          ?Worksheet $scope = null
  19      ) {
  20          if ($worksheet === null && $scope === null) {
  21              throw new Exception('You must specify a worksheet or a scope for a Named Range');
  22          }
  23          parent::__construct($name, $worksheet, $range, $localOnly, $scope);
  24      }
  25  
  26      /**
  27       * Get the range value.
  28       */
  29      public function getRange(): string
  30      {
  31          return $this->value;
  32      }
  33  
  34      /**
  35       * Set the range value.
  36       */
  37      public function setRange(string $range): self
  38      {
  39          if (!empty($range)) {
  40              $this->value = $range;
  41          }
  42  
  43          return $this;
  44      }
  45  
  46      public function getCellsInRange(): array
  47      {
  48          $range = $this->value;
  49          if (substr($range, 0, 1) === '=') {
  50              $range = substr($range, 1);
  51          }
  52  
  53          return Coordinate::extractAllCellReferencesInRange($range);
  54      }
  55  }