Example #1
0
 /**
  * Add named range
  *
  * @param NamedRange $namedRange
  * @return PHPExcel
  */
 public function addNamedRange(NamedRange $namedRange)
 {
     if ($namedRange->getScope() == null) {
         // global scope
         $this->_namedRanges[$namedRange->getName()] = $namedRange;
     } else {
         // local scope
         $this->_namedRanges[$namedRange->getScope()->getTitle() . '!' . $namedRange->getName()] = $namedRange;
     }
     return true;
 }
Example #2
0
 /**
  * Write Defined Name for autoFilter
  *
  * @param 	Shared_XMLWriter	$objWriter 		XML Writer
  * @param 	NamedRange			$pNamedRange
  * @throws 	Exception
  */
 private function _writeDefinedNameForNamedRange(Shared_XMLWriter $objWriter = null, NamedRange $pNamedRange)
 {
     // definedName for named range
     $objWriter->startElement('definedName');
     $objWriter->writeAttribute('name', $pNamedRange->getName());
     if ($pNamedRange->getLocalOnly()) {
         $objWriter->writeAttribute('localSheetId', $pNamedRange->getScope()->getParent()->getIndex($pNamedRange->getScope()));
     }
     // Create absolute coordinate and write as raw text
     $range = Cell::splitRange($pNamedRange->getRange());
     for ($i = 0; $i < count($range); $i++) {
         $range[$i][0] = '\'' . str_replace("'", "''", $pNamedRange->getWorksheet()->getTitle()) . '\'!' . Cell::absoluteCoordinate($range[$i][0]);
         if (isset($range[$i][1])) {
             $range[$i][1] = Cell::absoluteCoordinate($range[$i][1]);
         }
     }
     $range = Cell::buildRange($range);
     $objWriter->writeRaw($range);
     $objWriter->endElement();
 }