You are here

public function PHPExcel::addExternalSheet in Loft Data Grids 7.2

Same name and namespace in other branches
  1. 6.2 vendor/phpoffice/phpexcel/Classes/PHPExcel.php \PHPExcel::addExternalSheet()

Add external sheet

Parameters

PHPExcel_Worksheet $pSheet External sheet to add:

int|null $iSheetIndex Index where sheet should go (0,1,..., or null for last):

Return value

PHPExcel_Worksheet

Throws

PHPExcel_Exception

File

vendor/phpoffice/phpexcel/Classes/PHPExcel.php, line 738

Class

PHPExcel
PHPExcel

Code

public function addExternalSheet(PHPExcel_Worksheet $pSheet, $iSheetIndex = null) {
  if ($this
    ->sheetNameExists($pSheet
    ->getTitle())) {
    throw new PHPExcel_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
    ->getCellCollection(false) as $cellID) {
    $cell = $pSheet
      ->getCell($cellID);
    $cell
      ->setXfIndex($cell
      ->getXfIndex() + $countCellXfs);
  }
  return $this
    ->addSheet($pSheet, $iSheetIndex);
}