当前位置: 首页>>代码示例>>PHP>>正文


PHP PHPExcel_Calculation类代码示例

本文整理汇总了PHP中PHPExcel_Calculation的典型用法代码示例。如果您正苦于以下问题:PHP PHPExcel_Calculation类的具体用法?PHP PHPExcel_Calculation怎么用?PHP PHPExcel_Calculation使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了PHPExcel_Calculation类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: getInstance

	/**
	 * Get an instance of this class
	 *
	 * @return PHPExcel_Calculation
	 */
	public static function getInstance() {
		if (! isset ( self::$_instance ) || is_null ( self::$_instance )) {
			self::$_instance = new PHPExcel_Calculation ( );
		}

		return self::$_instance;
	}
开发者ID:Jtgadbois,项目名称:Pedadida,代码行数:12,代码来源:Calculation.php

示例2: testBinaryComparisonOperation

 /**
  * @dataProvider providerBinaryComparisonOperation
  */
 public function testBinaryComparisonOperation($formula, $expectedResultExcel, $expectedResultOpenOffice)
 {
     PHPExcel_Calculation_Functions::setCompatibilityMode(PHPExcel_Calculation_Functions::COMPATIBILITY_EXCEL);
     $resultExcel = \PHPExcel_Calculation::getInstance()->_calculateFormulaValue($formula);
     $this->assertEquals($expectedResultExcel, $resultExcel, 'should be Excel compatible');
     PHPExcel_Calculation_Functions::setCompatibilityMode(PHPExcel_Calculation_Functions::COMPATIBILITY_OPENOFFICE);
     $resultOpenOffice = \PHPExcel_Calculation::getInstance()->_calculateFormulaValue($formula);
     $this->assertEquals($expectedResultOpenOffice, $resultOpenOffice, 'should be OpenOffice compatible');
 }
开发者ID:MyPHPTools,项目名称:PHPExcel,代码行数:12,代码来源:CalculationTest.php

示例3: push

 /**
  * Push a new entry onto the stack
  *
  * @param  mixed $type
  * @param  mixed $value
  * @param  mixed $reference
  */
 public function push($type, $value, $reference = null)
 {
     $this->_stack[$this->_count++] = array('type' => $type, 'value' => $value, 'reference' => $reference);
     if ($type == 'Function') {
         $localeFunction = PHPExcel_Calculation::_localeFunc($value);
         if ($localeFunction != $value) {
             $this->_stack[$this->_count - 1]['localeValue'] = $localeFunction;
         }
     }
 }
开发者ID:TheTypoMaster,项目名称:SPHERE-Framework,代码行数:17,代码来源:Stack.php

示例4: getCalculatedValue

 /**
  * Get caluclated cell value
  *
  * @return mixed
  */
 public function getCalculatedValue($resetLog = true)
 {
     //		echo 'Cell '.$this->getCoordinate().' value is a '.$this->_dataType.' with a value of '.$this->getValue().'<br />';
     if (!is_null($this->_calculatedValue) && $this->_dataType == PHPExcel_Cell_DataType::TYPE_FORMULA) {
         try {
             //				echo 'Cell value for '.$this->getCoordinate().' is a formula: Calculating value<br />';
             $result = PHPExcel_Calculation::getInstance()->calculateCellValue($this, $resetLog);
         } catch (Exception $ex) {
             //				echo 'Calculation Exception: '.$ex->getMessage().'<br />';
             $result = '#N/A';
         }
         if (is_string($result) && $result == '#Not Yet Implemented') {
             //				echo 'Returning fallback value of '.$this->_calculatedValue.' for cell '.$this->getCoordinate().'<br />';
             return $this->_calculatedValue;
             // Fallback if calculation engine does not support the formula.
         } else {
             //				echo 'Returning calculated value of '.$result.' for cell '.$this->getCoordinate().'<br />';
             return $result;
         }
     }
     if (is_null($this->_value)) {
         //			echo 'Cell '.$this->getCoordinate().' has no value, formula or otherwise<br />';
         return null;
     } else {
         if ($this->_dataType != PHPExcel_Cell_DataType::TYPE_FORMULA) {
             //			echo 'Cell value for '.$this->getCoordinate().' is not a formula: Returning data value of '.$this->_value.'<br />';
             return $this->_value;
         } else {
             //			echo 'Cell value is a formula: Calculating value<br />';
             return PHPExcel_Calculation::getInstance()->calculateCellValue($this, $resetLog);
         }
     }
 }
开发者ID:honj51,项目名称:taobaocrm,代码行数:38,代码来源:Cell.php

示例5: save

 /**
  * Save PHPExcel to file
  *
  * @param 	string 		$pFileName
  * @throws 	Exception
  */
 public function save($pFilename = null)
 {
     // Fetch sheet
     $sheet = $this->_phpExcel->getSheet($this->_sheetIndex);
     $saveDebugLog = PHPExcel_Calculation::getInstance()->writeDebugLog;
     PHPExcel_Calculation::getInstance()->writeDebugLog = false;
     $saveArrayReturnType = PHPExcel_Calculation::getArrayReturnType();
     PHPExcel_Calculation::setArrayReturnType(PHPExcel_Calculation::RETURN_ARRAY_AS_VALUE);
     // Open file
     $fileHandle = fopen($pFilename, 'w');
     if ($fileHandle === false) {
         throw new Exception("Could not open file {$pFilename} for writing.");
     }
     if ($this->_useBOM) {
         // Write the UTF-8 BOM code
         fwrite($fileHandle, "");
     }
     // Convert sheet to array
     $cellsArray = $sheet->toArray('', $this->_preCalculateFormulas);
     // Write rows to file
     foreach ($cellsArray as $row) {
         $this->_writeLine($fileHandle, $row);
     }
     // Close file
     fclose($fileHandle);
     PHPExcel_Calculation::setArrayReturnType($saveArrayReturnType);
     PHPExcel_Calculation::getInstance()->writeDebugLog = $saveDebugLog;
 }
开发者ID:ohjack,项目名称:newErp,代码行数:34,代码来源:CSV.php

示例6: MINIF

 /**
  *	MINIF
  *
  *	Returns the minimum value within a range of cells that contain numbers within the list of arguments
  *
  *	Excel Function:
  *		MINIF(value1[,value2[, ...]],condition)
  *
  *	@access	public
  *	@category Mathematical and Trigonometric Functions
  *	@param	mixed		$arg,...		Data values
  *	@param	string		$condition		The criteria that defines which cells will be checked.
  *	@return	float
  */
 public static function MINIF($aArgs, $condition, $sumArgs = array())
 {
     // Return value
     $returnValue = null;
     $aArgs = PHPExcel_Calculation_Functions::flattenArray($aArgs);
     $sumArgs = PHPExcel_Calculation_Functions::flattenArray($sumArgs);
     if (count($sumArgs) == 0) {
         $sumArgs = $aArgs;
     }
     $condition = PHPExcel_Calculation_Functions::_ifCondition($condition);
     // Loop through arguments
     foreach ($aArgs as $key => $arg) {
         if (!is_numeric($arg)) {
             $arg = PHPExcel_Calculation::_wrapResult(strtoupper($arg));
         }
         $testCondition = '=' . $arg . $condition;
         if (PHPExcel_Calculation::getInstance()->_calculateFormulaValue($testCondition)) {
             if (is_null($returnValue) || $arg < $returnValue) {
                 $returnValue = $arg;
             }
         }
     }
     // Return
     return $returnValue;
 }
开发者ID:sysraj86,项目名称:carnivalcrm,代码行数:39,代码来源:Statistical.php

示例7: save

 /**
  * Save PHPExcel to file
  *
  * @param	string		$pFilename
  * @throws	PHPExcel_Writer_Exception
  */
 public function save($pFilename = null)
 {
     // garbage collect
     $this->_phpExcel->garbageCollect();
     $saveDebugLog = PHPExcel_Calculation::getInstance($this->_phpExcel)->getDebugLog()->getWriteDebugLog();
     PHPExcel_Calculation::getInstance($this->_phpExcel)->getDebugLog()->setWriteDebugLog(FALSE);
     $saveArrayReturnType = PHPExcel_Calculation::getArrayReturnType();
     PHPExcel_Calculation::setArrayReturnType(PHPExcel_Calculation::RETURN_ARRAY_AS_VALUE);
     // Build CSS
     $this->buildCSS(!$this->_useInlineCss);
     // Open file
     $fileHandle = fopen($pFilename, 'wb+');
     if ($fileHandle === false) {
         throw new PHPExcel_Writer_Exception("Could not open file {$pFilename} for writing.");
     }
     // Write headers
     fwrite($fileHandle, $this->generateHTMLHeader(!$this->_useInlineCss));
     // Write navigation (tabs)
     if (!$this->_isPdf && $this->_generateSheetNavigationBlock) {
         fwrite($fileHandle, $this->generateNavigation());
     }
     // Write data
     fwrite($fileHandle, $this->generateSheetData());
     // Write footer
     fwrite($fileHandle, $this->generateHTMLFooter());
     // Close file
     fclose($fileHandle);
     PHPExcel_Calculation::setArrayReturnType($saveArrayReturnType);
     PHPExcel_Calculation::getInstance($this->_phpExcel)->getDebugLog()->setWriteDebugLog($saveDebugLog);
 }
开发者ID:adit-gudhel,项目名称:simpus-dev,代码行数:36,代码来源:HTML.php

示例8: NOT

 /**
  * NOT
  *
  * Returns the boolean inverse of the argument.
  *
  * Excel Function:
  *        =NOT(logical)
  *
  *        The argument must evaluate to a logical value such as TRUE or FALSE
  *
  *        Boolean arguments are treated as True or False as appropriate
  *        Integer or floating point arguments are treated as True, except for 0 or 0.0 which are False
  *        If any argument value is a string, or a Null, the function returns a #VALUE! error, unless the string holds
  *            the value TRUE or FALSE, in which case it is evaluated as the corresponding boolean value
  *
  * @access    public
  * @category  Logical Functions
  *
  * @param    mixed $logical A value or expression that can be evaluated to TRUE or FALSE
  *
  * @return    boolean        The boolean inverse of the argument.
  */
 public static function NOT($logical = false)
 {
     $logical = PHPExcel_Calculation_Functions::flattenSingleValue($logical);
     if (is_string($logical)) {
         $logical = strtoupper($logical);
         if ($logical == 'TRUE' || $logical == PHPExcel_Calculation::getTRUE()) {
             return false;
         } elseif ($logical == 'FALSE' || $logical == PHPExcel_Calculation::getFALSE()) {
             return true;
         } else {
             return PHPExcel_Calculation_Functions::VALUE();
         }
     }
     return !$logical;
 }
开发者ID:TheTypoMaster,项目名称:SPHERE-Framework,代码行数:37,代码来源:Logical.php

示例9: convertToNumberIfFraction

 /**
  * Identify whether a string contains a fractional numeric value,
  *    and convert it to a numeric if it is
  *
  * @param string &$operand string value to test
  * @return boolean
  */
 public static function convertToNumberIfFraction(&$operand)
 {
     if (preg_match('/^' . self::STRING_REGEXP_FRACTION . '$/i', $operand, $match)) {
         $sign = $match[1] == '-' ? '-' : '+';
         $fractionFormula = '=' . $sign . $match[2] . $sign . $match[3];
         $operand = PHPExcel_Calculation::getInstance()->_calculateFormulaValue($fractionFormula);
         return true;
     }
     return false;
 }
开发者ID:Princelo,项目名称:bioerp,代码行数:17,代码来源:String.php

示例10: getCalculatedValue

 /**
  *	Get calculated cell value
  *
  *	@deprecated		Since version 1.7.8 for planned changes to cell for array formula handling
  *
  *	@return	mixed
  *	@throws	PHPExcel_Exception
  */
 public function getCalculatedValue($resetLog = TRUE)
 {
     //		echo 'Cell '.$this->getCoordinate().' value is a '.$this->_dataType.' with a value of '.$this->getValue().'<br />';
     if ($this->_dataType == PHPExcel_Cell_DataType::TYPE_FORMULA) {
         try {
             //				echo 'Cell value for '.$this->getCoordinate().' is a formula: Calculating value<br />';
             $result = PHPExcel_Calculation::getInstance()->calculateCellValue($this, $resetLog);
             //				echo $this->getCoordinate().' calculation result is '.$result.'<br />';
         } catch (Exception $ex) {
             if ($ex->getMessage() === 'Unable to access External Workbook' && $this->_calculatedValue !== NULL) {
                 //					echo 'Returning fallback value of '.$this->_calculatedValue.' for cell '.$this->getCoordinate().'<br />';
                 return $this->_calculatedValue;
                 // Fallback for calculations referencing external files.
             }
             //				echo 'Calculation Exception: '.$ex->getMessage().'<br />';
             $result = '#N/A';
             throw new PHPExcel_Exception($this->getParent()->getTitle() . '!' . $this->getCoordinate() . ' -> ' . $ex->getMessage());
         }
         if ($result === '#Not Yet Implemented') {
             //				echo 'Returning fallback value of '.$this->_calculatedValue.' for cell '.$this->getCoordinate().'<br />';
             return $this->_calculatedValue;
             // Fallback if calculation engine does not support the formula.
         }
         //			echo 'Returning calculated value of '.$result.' for cell '.$this->getCoordinate().'<br />';
         return $result;
     }
     //		if ($this->_value === NULL) {
     //			echo 'Cell '.$this->getCoordinate().' has no value, formula or otherwise<br />';
     //			return NULL;
     //		}
     //		echo 'Cell value for '.$this->getCoordinate().' is not a formula: Returning data value of '.$this->_value.'<br />';
     return $this->_value;
 }
开发者ID:JaeHoYun,项目名称:generatedata,代码行数:41,代码来源:Cell.php

示例11: save

 /**
  * Save PHPExcel to file
  *
  * @param 	string 		$pFilename
  * @throws 	PHPExcel_Writer_Exception
  */
 public function save($pFilename = null)
 {
     if ($this->_spreadSheet !== NULL) {
         // garbage collect
         $this->_spreadSheet->garbageCollect();
         // If $pFilename is php://output or php://stdout, make it a temporary file...
         $originalFilename = $pFilename;
         if (strtolower($pFilename) == 'php://output' || strtolower($pFilename) == 'php://stdout') {
             $pFilename = @tempnam(PHPExcel_Shared_File::sys_get_temp_dir(), 'phpxltmp');
             if ($pFilename == '') {
                 $pFilename = $originalFilename;
             }
         }
         $saveDebugLog = PHPExcel_Calculation::getInstance($this->_spreadSheet)->getDebugLog()->getWriteDebugLog();
         PHPExcel_Calculation::getInstance($this->_spreadSheet)->getDebugLog()->setWriteDebugLog(FALSE);
         $saveDateReturnType = PHPExcel_Calculation_Functions::getReturnDateType();
         PHPExcel_Calculation_Functions::setReturnDateType(PHPExcel_Calculation_Functions::RETURNDATE_EXCEL);
         // Create string lookup table
         $this->_stringTable = array();
         for ($i = 0; $i < $this->_spreadSheet->getSheetCount(); ++$i) {
             $this->_stringTable = $this->getWriterPart('StringTable')->createStringTable($this->_spreadSheet->getSheet($i), $this->_stringTable);
         }
         // Create styles dictionaries
         $this->_styleHashTable->addFromSource($this->getWriterPart('Style')->allStyles($this->_spreadSheet));
         $this->_stylesConditionalHashTable->addFromSource($this->getWriterPart('Style')->allConditionalStyles($this->_spreadSheet));
         $this->_fillHashTable->addFromSource($this->getWriterPart('Style')->allFills($this->_spreadSheet));
         $this->_fontHashTable->addFromSource($this->getWriterPart('Style')->allFonts($this->_spreadSheet));
         $this->_bordersHashTable->addFromSource($this->getWriterPart('Style')->allBorders($this->_spreadSheet));
         $this->_numFmtHashTable->addFromSource($this->getWriterPart('Style')->allNumberFormats($this->_spreadSheet));
         // Create drawing dictionary
         $this->_drawingHashTable->addFromSource($this->getWriterPart('Drawing')->allDrawings($this->_spreadSheet));
         // Create new ZIP file and open it for writing
         $zipClass = PHPExcel_Settings::getZipClass();
         $objZip = new $zipClass();
         //	Retrieve OVERWRITE and CREATE constants from the instantiated zip class
         //	This method of accessing constant values from a dynamic class should work with all appropriate versions of PHP
         $ro = new ReflectionObject($objZip);
         $zipOverWrite = $ro->getConstant('OVERWRITE');
         $zipCreate = $ro->getConstant('CREATE');
         if (file_exists($pFilename)) {
             unlink($pFilename);
         }
         // Try opening the ZIP file
         if ($objZip->open($pFilename, $zipOverWrite) !== true) {
             if ($objZip->open($pFilename, $zipCreate) !== true) {
                 throw new PHPExcel_Writer_Exception("Could not open " . $pFilename . " for writing.");
             }
         }
         // Add [Content_Types].xml to ZIP file
         $objZip->addFromString('[Content_Types].xml', $this->getWriterPart('ContentTypes')->writeContentTypes($this->_spreadSheet, $this->_includeCharts));
         //if hasMacros, add the vbaProject.bin file, Certificate file(if exists)
         if ($this->_spreadSheet->hasMacros()) {
             $macrosCode = $this->_spreadSheet->getMacrosCode();
             if (!is_null($macrosCode)) {
                 // we have the code ?
                 $objZip->addFromString('xl/vbaProject.bin', $macrosCode);
                 //allways in 'xl', allways named vbaProject.bin
                 if ($this->_spreadSheet->hasMacrosCertificate()) {
                     //signed macros ?
                     // Yes : add the certificate file and the related rels file
                     $objZip->addFromString('xl/vbaProjectSignature.bin', $this->_spreadSheet->getMacrosCertificate());
                     $objZip->addFromString('xl/_rels/vbaProject.bin.rels', $this->getWriterPart('RelsVBA')->writeVBARelationships($this->_spreadSheet));
                 }
             }
         }
         //a custom UI in this workbook ? add it ("base" xml and additional objects (pictures) and rels)
         if ($this->_spreadSheet->hasRibbon()) {
             $tmpRibbonTarget = $this->_spreadSheet->getRibbonXMLData('target');
             $objZip->addFromString($tmpRibbonTarget, $this->_spreadSheet->getRibbonXMLData('data'));
             if ($this->_spreadSheet->hasRibbonBinObjects()) {
                 $tmpRootPath = dirname($tmpRibbonTarget) . '/';
                 $ribbonBinObjects = $this->_spreadSheet->getRibbonBinObjects('data');
                 //the files to write
                 foreach ($ribbonBinObjects as $aPath => $aContent) {
                     $objZip->addFromString($tmpRootPath . $aPath, $aContent);
                 }
                 //the rels for files
                 $objZip->addFromString($tmpRootPath . '_rels/' . basename($tmpRibbonTarget) . '.rels', $this->getWriterPart('RelsRibbonObjects')->writeRibbonRelationships($this->_spreadSheet));
             }
         }
         // Add relationships to ZIP file
         $objZip->addFromString('_rels/.rels', $this->getWriterPart('Rels')->writeRelationships($this->_spreadSheet));
         $objZip->addFromString('xl/_rels/workbook.xml.rels', $this->getWriterPart('Rels')->writeWorkbookRelationships($this->_spreadSheet));
         // Add document properties to ZIP file
         $objZip->addFromString('docProps/app.xml', $this->getWriterPart('DocProps')->writeDocPropsApp($this->_spreadSheet));
         $objZip->addFromString('docProps/core.xml', $this->getWriterPart('DocProps')->writeDocPropsCore($this->_spreadSheet));
         $customPropertiesPart = $this->getWriterPart('DocProps')->writeDocPropsCustom($this->_spreadSheet);
         if ($customPropertiesPart !== NULL) {
             $objZip->addFromString('docProps/custom.xml', $customPropertiesPart);
         }
         // Add theme to ZIP file
         $objZip->addFromString('xl/theme/theme1.xml', $this->getWriterPart('Theme')->writeTheme($this->_spreadSheet));
         // Add string table to ZIP file
         $objZip->addFromString('xl/sharedStrings.xml', $this->getWriterPart('StringTable')->writeStringTable($this->_stringTable));
//.........这里部分代码省略.........
开发者ID:Tripbull,项目名称:newrepo,代码行数:101,代码来源:Excel2007.php

示例12: calculateCellValue

 /**
  * Calculate the value of a cell formula
  *
  * @access	public
  * @param	PHPExcel_Cell	$pCell		Cell to calculate
  * @param	Boolean			$resetLog	Flag indicating whether the debug log should be reset or not
  * @return	mixed
  * @throws	PHPExcel_Calculation_Exception
  */
 public function calculateCellValue(PHPExcel_Cell $pCell = NULL, $resetLog = TRUE)
 {
     if ($pCell === NULL) {
         return NULL;
     }
     $returnArrayAsType = self::$returnArrayAsType;
     if ($resetLog) {
         //	Initialise the logging settings if requested
         $this->formulaError = null;
         $this->_debugLog->clearLog();
         $this->_cyclicReferenceStack->clear();
         $this->_cyclicFormulaCount = 1;
         self::$returnArrayAsType = self::RETURN_ARRAY_AS_ARRAY;
     }
     //	Execute the calculation for the cell formula
     $this->_cellStack[] = array('sheet' => $pCell->getWorksheet()->getTitle(), 'cell' => $pCell->getCoordinate());
     try {
         $result = self::_unwrapResult($this->_calculateFormulaValue($pCell->getValue(), $pCell->getCoordinate(), $pCell));
         $cellAddress = array_pop($this->_cellStack);
         $this->_workbook->getSheetByName($cellAddress['sheet'])->getCell($cellAddress['cell']);
     } catch (PHPExcel_Exception $e) {
         $cellAddress = array_pop($this->_cellStack);
         $this->_workbook->getSheetByName($cellAddress['sheet'])->getCell($cellAddress['cell']);
         throw new PHPExcel_Calculation_Exception($e->getMessage());
     }
     if (is_array($result) && self::$returnArrayAsType != self::RETURN_ARRAY_AS_ARRAY) {
         self::$returnArrayAsType = $returnArrayAsType;
         $testResult = PHPExcel_Calculation_Functions::flattenArray($result);
         if (self::$returnArrayAsType == self::RETURN_ARRAY_AS_ERROR) {
             return PHPExcel_Calculation_Functions::VALUE();
         }
         //	If there's only a single cell in the array, then we allow it
         if (count($testResult) != 1) {
             //	If keys are numeric, then it's a matrix result rather than a cell range result, so we permit it
             $r = array_keys($result);
             $r = array_shift($r);
             if (!is_numeric($r)) {
                 return PHPExcel_Calculation_Functions::VALUE();
             }
             if (is_array($result[$r])) {
                 $c = array_keys($result[$r]);
                 $c = array_shift($c);
                 if (!is_numeric($c)) {
                     return PHPExcel_Calculation_Functions::VALUE();
                 }
             }
         }
         $result = array_shift($testResult);
     }
     self::$returnArrayAsType = $returnArrayAsType;
     if ($result === NULL) {
         return 0;
     } elseif (is_float($result) && (is_nan($result) || is_infinite($result))) {
         return PHPExcel_Calculation_Functions::NaN();
     }
     return $result;
 }
开发者ID:Princelo,项目名称:bioerp,代码行数:66,代码来源:Calculation.php

示例13: PROPERCASE

 /**
  * PROPERCASE
  *
  * Converts a string value to upper case.
  *
  * @param	string		$mixedCaseString
  * @return	string
  */
 public static function PROPERCASE($mixedCaseString)
 {
     $mixedCaseString = PHPExcel_Calculation_Functions::flattenSingleValue($mixedCaseString);
     if (is_bool($mixedCaseString)) {
         $mixedCaseString = $mixedCaseString ? PHPExcel_Calculation::getTRUE() : PHPExcel_Calculation::getFALSE();
     }
     return PHPExcel_Shared_String::StrToTitle($mixedCaseString);
 }
开发者ID:EmmanuelTaborda2015,项目名称:kyron_modificado,代码行数:16,代码来源:TextData.php

示例14: loadIntoExisting


//.........这里部分代码省略.........
                                         list($year, $month, $day, $hour, $minute, $second) = explode(' ', $dateObj->format('Y m d H i s'));
                                         $dataValue = PHPExcel_Shared_Date::FormattedPHPToExcel($year, $month, $day, $hour, $minute, $second);
                                         if ($dataValue != floor($dataValue)) {
                                             $formatting = PHPExcel_Style_NumberFormat::FORMAT_DATE_XLSX15 . ' ' . PHPExcel_Style_NumberFormat::FORMAT_DATE_TIME4;
                                         } else {
                                             $formatting = PHPExcel_Style_NumberFormat::FORMAT_DATE_XLSX15;
                                         }
                                         break;
                                     case 'time':
                                         $type = PHPExcel_Cell_DataType::TYPE_NUMERIC;
                                         $dataValue = PHPExcel_Shared_Date::PHPToExcel(strtotime('01-01-1970 ' . implode(':', sscanf($cellDataOfficeAttributes['time-value'], 'PT%dH%dM%dS'))));
                                         $formatting = PHPExcel_Style_NumberFormat::FORMAT_DATE_TIME4;
                                         break;
                                 }
                                 //									echo 'Data value is '.$dataValue.'<br />';
                                 //									if ($hyperlink !== NULL) {
                                 //										echo 'Hyperlink is '.$hyperlink.'<br />';
                                 //									}
                             } else {
                                 $type = PHPExcel_Cell_DataType::TYPE_NULL;
                                 $dataValue = NULL;
                             }
                             if ($hasCalculatedValue) {
                                 $type = PHPExcel_Cell_DataType::TYPE_FORMULA;
                                 //									echo 'Formula: ', $cellDataFormula, PHP_EOL;
                                 $cellDataFormula = substr($cellDataFormula, strpos($cellDataFormula, ':=') + 1);
                                 $temp = explode('"', $cellDataFormula);
                                 $tKey = false;
                                 foreach ($temp as &$value) {
                                     //	Only replace in alternate array entries (i.e. non-quoted blocks)
                                     if ($tKey = !$tKey) {
                                         $value = preg_replace('/\\[([^\\.]+)\\.([^\\.]+):\\.([^\\.]+)\\]/Ui', '$1!$2:$3', $value);
                                         //  Cell range reference in another sheet
                                         $value = preg_replace('/\\[([^\\.]+)\\.([^\\.]+)\\]/Ui', '$1!$2', $value);
                                         //  Cell reference in another sheet
                                         $value = preg_replace('/\\[\\.([^\\.]+):\\.([^\\.]+)\\]/Ui', '$1:$2', $value);
                                         //  Cell range reference
                                         $value = preg_replace('/\\[\\.([^\\.]+)\\]/Ui', '$1', $value);
                                         //  Simple cell reference
                                         $value = PHPExcel_Calculation::_translateSeparator(';', ',', $value, $inBraces);
                                     }
                                 }
                                 unset($value);
                                 //	Then rebuild the formula string
                                 $cellDataFormula = implode('"', $temp);
                                 //									echo 'Adjusted Formula: ', $cellDataFormula, PHP_EOL;
                             }
                             $colRepeats = isset($cellDataTableAttributes['number-columns-repeated']) ? $cellDataTableAttributes['number-columns-repeated'] : 1;
                             if ($type !== NULL) {
                                 for ($i = 0; $i < $colRepeats; ++$i) {
                                     if ($i > 0) {
                                         ++$columnID;
                                     }
                                     if ($type !== PHPExcel_Cell_DataType::TYPE_NULL) {
                                         for ($rowAdjust = 0; $rowAdjust < $rowRepeats; ++$rowAdjust) {
                                             $rID = $rowID + $rowAdjust;
                                             $objPHPExcel->getActiveSheet()->getCell($columnID . $rID)->setValueExplicit($hasCalculatedValue ? $cellDataFormula : $dataValue, $type);
                                             if ($hasCalculatedValue) {
                                                 //													echo 'Forumla result is '.$dataValue.'<br />';
                                                 $objPHPExcel->getActiveSheet()->getCell($columnID . $rID)->setCalculatedValue($dataValue);
                                             }
                                             if ($formatting !== NULL) {
                                                 $objPHPExcel->getActiveSheet()->getStyle($columnID . $rID)->getNumberFormat()->setFormatCode($formatting);
                                             } else {
                                                 $objPHPExcel->getActiveSheet()->getStyle($columnID . $rID)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_GENERAL);
                                             }
                                             if ($hyperlink !== NULL) {
                                                 $objPHPExcel->getActiveSheet()->getCell($columnID . $rID)->getHyperlink()->setUrl($hyperlink);
                                             }
                                         }
                                     }
                                 }
                             }
                             //	Merged cells
                             if (isset($cellDataTableAttributes['number-columns-spanned']) || isset($cellDataTableAttributes['number-rows-spanned'])) {
                                 if ($type !== PHPExcel_Cell_DataType::TYPE_NULL || !$this->_readDataOnly) {
                                     $columnTo = $columnID;
                                     if (isset($cellDataTableAttributes['number-columns-spanned'])) {
                                         $columnTo = PHPExcel_Cell::stringFromColumnIndex(PHPExcel_Cell::columnIndexFromString($columnID) + $cellDataTableAttributes['number-columns-spanned'] - 2);
                                     }
                                     $rowTo = $rowID;
                                     if (isset($cellDataTableAttributes['number-rows-spanned'])) {
                                         $rowTo = $rowTo + $cellDataTableAttributes['number-rows-spanned'] - 1;
                                     }
                                     $cellRange = $columnID . $rowID . ':' . $columnTo . $rowTo;
                                     $objPHPExcel->getActiveSheet()->mergeCells($cellRange);
                                 }
                             }
                             ++$columnID;
                         }
                         $rowID += $rowRepeats;
                         break;
                 }
             }
             ++$worksheetID;
         }
     }
     // Return
     return $objPHPExcel;
 }
开发者ID:arjunkumar786,项目名称:faces,代码行数:101,代码来源:OOCalc.php

示例15: _ifCondition

 public static function _ifCondition($condition)
 {
     $condition = PHPExcel_Calculation_Functions::flattenSingleValue($condition);
     if (!in_array($condition[0], array('>', '<', '='))) {
         if (!is_numeric($condition)) {
             $condition = PHPExcel_Calculation::_wrapResult(strtoupper($condition));
         }
         return '=' . $condition;
     } else {
         preg_match('/([<>=]+)(.*)/', $condition, $matches);
         list(, $operator, $operand) = $matches;
         if (!is_numeric($operand)) {
             $operand = PHPExcel_Calculation::_wrapResult(strtoupper($operand));
         }
         return $operator . $operand;
     }
 }
开发者ID:sysraj86,项目名称:carnivalcrm,代码行数:17,代码来源:Functions.php


注:本文中的PHPExcel_Calculation类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。