Revision of release v1.3.2
This commit is contained in:
@ -23,7 +23,7 @@ class Calculation
|
||||
// Opening bracket
|
||||
const CALCULATION_REGEXP_OPENBRACE = '\(';
|
||||
// Function (allow for the old @ symbol that could be used to prefix a function, but we'll ignore it)
|
||||
const CALCULATION_REGEXP_FUNCTION = '@?([A-Z][A-Z0-9\.]*)[\s]*\(';
|
||||
const CALCULATION_REGEXP_FUNCTION = '@?(?:_xlfn\.)?([A-Z][A-Z0-9\.]*)[\s]*\(';
|
||||
// Cell reference (cell or range of cells, with or without a sheet reference)
|
||||
const CALCULATION_REGEXP_CELLREF = '((([^\s,!&%^\/\*\+<>=-]*)|(\'[^\']*\')|(\"[^\"]*\"))!)?\$?([a-z]{1,3})\$?(\d{1,7})';
|
||||
// Named Range of cells
|
||||
@ -1082,6 +1082,13 @@ class Calculation
|
||||
'functionCall' => [Functions::class, 'isEven'],
|
||||
'argumentCount' => '1',
|
||||
],
|
||||
'ISFORMULA' => [
|
||||
'category' => Category::CATEGORY_INFORMATION,
|
||||
'functionCall' => [Functions::class, 'isFormula'],
|
||||
'argumentCount' => '1',
|
||||
'passCellReference' => true,
|
||||
'passByReference' => [true],
|
||||
],
|
||||
'ISLOGICAL' => [
|
||||
'category' => Category::CATEGORY_INFORMATION,
|
||||
'functionCall' => [Functions::class, 'isLogical'],
|
||||
@ -1302,6 +1309,11 @@ class Calculation
|
||||
'functionCall' => [Statistical::class, 'MODE'],
|
||||
'argumentCount' => '1+',
|
||||
],
|
||||
'MODE.SNGL' => [
|
||||
'category' => Category::CATEGORY_STATISTICAL,
|
||||
'functionCall' => [Statistical::class, 'MODE'],
|
||||
'argumentCount' => '1+',
|
||||
],
|
||||
'MONTH' => [
|
||||
'category' => Category::CATEGORY_DATE_AND_TIME,
|
||||
'functionCall' => [DateTime::class, 'MONTHOFYEAR'],
|
||||
@ -1700,6 +1712,16 @@ class Calculation
|
||||
'functionCall' => [Statistical::class, 'STDEV'],
|
||||
'argumentCount' => '1+',
|
||||
],
|
||||
'STDEV.S' => [
|
||||
'category' => Category::CATEGORY_STATISTICAL,
|
||||
'functionCall' => [Statistical::class, 'STDEV'],
|
||||
'argumentCount' => '1+',
|
||||
],
|
||||
'STDEV.P' => [
|
||||
'category' => Category::CATEGORY_STATISTICAL,
|
||||
'functionCall' => [Statistical::class, 'STDEVP'],
|
||||
'argumentCount' => '1+',
|
||||
],
|
||||
'STDEVA' => [
|
||||
'category' => Category::CATEGORY_STATISTICAL,
|
||||
'functionCall' => [Statistical::class, 'STDEVA'],
|
||||
@ -3772,10 +3794,6 @@ class Calculation
|
||||
$namedRange = $matches[6];
|
||||
$this->debugLog->writeDebugLog('Evaluating Named Range ', $namedRange);
|
||||
|
||||
if (substr($namedRange, 0, 6) === '_xlfn.') {
|
||||
return $this->raiseFormulaError("undefined named range / function '$token'");
|
||||
}
|
||||
|
||||
$cellValue = $this->extractNamedRange($namedRange, ((null !== $pCell) ? $pCellWorksheet : null), false);
|
||||
$pCell->attach($pCellParent);
|
||||
$this->debugLog->writeDebugLog('Evaluation Result for named range ', $namedRange, ' is ', $this->showTypeDetails($cellValue));
|
||||
|
Reference in New Issue
Block a user