code: public function listWorksheetNames($pFilename)
      {
          File::assertFile($pFilename);
  
          $worksheetNames = [];
  
          // Read the OLE file
          $this->loadOLE($pFilename);
  
          // total byte size of Excel data (workbook global substream + sheet substreams)
          $this->dataSize = strlen($this->data);
  
          $this->pos = 0;
          $this->sheets = [];
  
          // Parse Workbook Global Substream
          while ($this->pos < $this->dataSize) {
              $code = self::getUInt2d($this->data, $this->pos);
  
              switch ($code) {
                  case self::XLS_TYPE_BOF:
                      $this->readBof();
  
                      break;
                  case self::XLS_TYPE_SHEET:
                      $this->readSheet();
  
                      break;
                  case self::XLS_TYPE_EOF:
                      $this->readDefault();
  
                      break 2;
                  default:
                      $this->readDefault();
  
                      break;
              }
          }
  
          foreach ($this->sheets as $sheet) {
              if ($sheet['sheetType'] != 0x00) {
                  // 0x00: Worksheet, 0x02: Chart, 0x06: Visual Basic module
                  continue;
              }
  
              $worksheetNames[] = $sheet['name'];
          }
  
          return $worksheetNames;
      }
docs: Reads names of the worksheets from a file, without parsing the whole file to a PhpSpreadsheet object.
  
  @param string $pFilename
  
  @throws Exception
  
  @return array