code: public function addExternalSheet(Worksheet $pSheet, $iSheetIndex = null)
      {
          if ($this->sheetNameExists($pSheet->getTitle())) {
              throw new Exception("Workbook already contains a worksheet named '{$pSheet->getTitle()}'. Rename the external sheet first.");
          }
  
          // count how many cellXfs there are in this workbook currently, we will need this below
          $countCellXfs = count($this->cellXfCollection);
  
          // copy all the shared cellXfs from the external workbook and append them to the current
          foreach ($pSheet->getParent()->getCellXfCollection() as $cellXf) {
              $this->addCellXf(clone $cellXf);
          }
  
          // move sheet to this workbook
          $pSheet->rebindParent($this);
  
          // update the cellXfs
          foreach ($pSheet->getCoordinates(false) as $coordinate) {
              $cell = $pSheet->getCell($coordinate);
              $cell->setXfIndex($cell->getXfIndex() + $countCellXfs);
          }
  
          return $this->addSheet($pSheet, $iSheetIndex);
      }
docs: Add external sheet.
  
  @param Worksheet $pSheet External sheet to add
  @param null|int $iSheetIndex Index where sheet should go (0,1,..., or null for last)
  
  @throws Exception
  
  @return Worksheet