code: public function createStringTable(Worksheet $pSheet, $pExistingTable = null)
      {
          // Create string lookup table
          $aStringTable = [];
          $cellCollection = null;
          $aFlippedStringTable = null; // For faster lookup
  
          // Is an existing table given?
          if (($pExistingTable !== null) && is_array($pExistingTable)) {
              $aStringTable = $pExistingTable;
          }
  
          // Fill index array
          $aFlippedStringTable = $this->flipStringTable($aStringTable);
  
          // Loop through cells
          foreach ($pSheet->getCoordinates() as $coordinate) {
              $cell = $pSheet->getCell($coordinate);
              $cellValue = $cell->getValue();
              if (!is_object($cellValue) &&
                  ($cellValue !== null) &&
                  $cellValue !== '' &&
                  !isset($aFlippedStringTable[$cellValue]) &&
                  ($cell->getDataType() == DataType::TYPE_STRING || $cell->getDataType() == DataType::TYPE_STRING2 || $cell->getDataType() == DataType::TYPE_NULL)) {
                  $aStringTable[] = $cellValue;
                  $aFlippedStringTable[$cellValue] = true;
              } elseif ($cellValue instanceof RichText &&
                  ($cellValue !== null) &&
                  !isset($aFlippedStringTable[$cellValue->getHashCode()])) {
                  $aStringTable[] = $cellValue;
                  $aFlippedStringTable[$cellValue->getHashCode()] = true;
              }
          }
  
          return $aStringTable;
      }
docs: Create worksheet stringtable.
  
  @param Worksheet $pSheet Worksheet
  @param string[] $pExistingTable Existing table to eventually merge with
  
  @return string[] String table for worksheet