code: public function listWorksheetNames($pFilename)
      {
          File::assertFile($pFilename);
  
          $xml = new XMLReader();
          $xml->xml($this->securityScanFile('compress.zlib://' . realpath($pFilename)), null, Settings::getLibXmlLoaderOptions());
          $xml->setParserProperty(2, true);
  
          $worksheetNames = [];
          while ($xml->read()) {
              if ($xml->name == 'gnm:SheetName' && $xml->nodeType == XMLReader::ELEMENT) {
                  $xml->read(); //    Move onto the value node
                  $worksheetNames[] = (string) $xml->value;
              } elseif ($xml->name == 'gnm:Sheets') {
                  //    break out of the loop once we've got our sheet names rather than parse the entire file
                  break;
              }
          }
  
          return $worksheetNames;
      }
docs: Reads names of the worksheets from a file, without parsing the whole file to a Spreadsheet object.
  
  @param string $pFilename
  
  @return array