code: public function addSheet(Worksheet $pSheet, $iSheetIndex = null)
      {
          if ($this->sheetNameExists($pSheet->getTitle())) {
              throw new Exception(
                  "Workbook already contains a worksheet named '{$pSheet->getTitle()}'. Rename this worksheet first."
              );
          }
  
          if ($iSheetIndex === null) {
              if ($this->activeSheetIndex < 0) {
                  $this->activeSheetIndex = 0;
              }
              $this->workSheetCollection[] = $pSheet;
          } else {
              // Insert the sheet at the requested index
              array_splice(
                  $this->workSheetCollection,
                  $iSheetIndex,
                  0,
                  [$pSheet]
              );
  
              // Adjust active sheet index if necessary
              if ($this->activeSheetIndex >= $iSheetIndex) {
                  ++$this->activeSheetIndex;
              }
          }
  
          if ($pSheet->getParent() === null) {
              $pSheet->rebindParent($this);
          }
  
          return $pSheet;
      }
docs: Add sheet.
  
  @param Worksheet $pSheet
  @param null|int $iSheetIndex Index where sheet should go (0,1,..., or null for last)
  
  @throws Exception
  
  @return Worksheet