Example #1
0
 /**
  * Set title
  *
  * @param string $pValue String containing the dimension of this worksheet
  * @param string $updateFormulaCellReferences boolean Flag indicating whether cell references in formulae should
  *            be updated to reflect the new sheet name.
  *          This should be left as the default true, unless you are
  *          certain that no formula cells on any worksheet contain
  *          references to this worksheet
  * @return PHPExcel_Worksheet
  */
 public function setTitle($pValue = 'Worksheet', $updateFormulaCellReferences = true)
 {
     // Is this a 'rename' or not?
     if ($this->getTitle() == $pValue) {
         return $this;
     }
     // Syntax check
     self::checkSheetTitle($pValue);
     // Old title
     $oldTitle = $this->getTitle();
     if ($this->parent) {
         // Is there already such sheet name?
         if ($this->parent->sheetNameExists($pValue)) {
             // Use name, but append with lowest possible integer
             if (PHPExcel_Shared_String::CountCharacters($pValue) > 29) {
                 $pValue = PHPExcel_Shared_String::Substring($pValue, 0, 29);
             }
             $i = 1;
             while ($this->parent->sheetNameExists($pValue . ' ' . $i)) {
                 ++$i;
                 if ($i == 10) {
                     if (PHPExcel_Shared_String::CountCharacters($pValue) > 28) {
                         $pValue = PHPExcel_Shared_String::Substring($pValue, 0, 28);
                     }
                 } elseif ($i == 100) {
                     if (PHPExcel_Shared_String::CountCharacters($pValue) > 27) {
                         $pValue = PHPExcel_Shared_String::Substring($pValue, 0, 27);
                     }
                 }
             }
             $altTitle = $pValue . ' ' . $i;
             return $this->setTitle($altTitle, $updateFormulaCellReferences);
         }
     }
     // Set title
     $this->title = $pValue;
     $this->dirty = true;
     if ($this->parent && $this->parent->getCalculationEngine()) {
         // New title
         $newTitle = $this->getTitle();
         $this->parent->getCalculationEngine()->renameCalculationCacheForWorksheet($oldTitle, $newTitle);
         if ($updateFormulaCellReferences) {
             PHPExcel_ReferenceHelper::getInstance()->updateNamedFormulas($this->parent, $oldTitle, $newTitle);
         }
     }
     return $this;
 }
Example #2
0
 /**
  * Get an instance of this class
  *
  * @access    public
  * @param   PHPExcel $workbook  Injected workbook for working with a PHPExcel object,
  *                                    or NULL to create a standalone claculation engine
  * @return PHPExcel_Calculation
  */
 public static function getInstance(PHPExcel $workbook = null)
 {
     if ($workbook !== null) {
         $instance = $workbook->getCalculationEngine();
         if (isset($instance)) {
             return $instance;
         }
     }
     if (!isset(self::$instance) || self::$instance === null) {
         self::$instance = new PHPExcel_Calculation();
     }
     return self::$instance;
 }