mirror of
https://github.com/Karaka-Management/Resources.git
synced 2026-01-17 23:58:39 +00:00
44 lines
1.2 KiB
PHP
44 lines
1.2 KiB
PHP
<?php
|
|
|
|
namespace PhpOffice\PhpSpreadsheet\Calculation\LookupRef;
|
|
|
|
use PhpOffice\PhpSpreadsheet\Calculation\Calculation;
|
|
use PhpOffice\PhpSpreadsheet\Calculation\Information\ExcelError;
|
|
use PhpOffice\PhpSpreadsheet\Cell\Cell;
|
|
|
|
class Formula
|
|
{
|
|
/**
|
|
* FORMULATEXT.
|
|
*
|
|
* @param mixed $cellReference The cell to check
|
|
* @param Cell $cell The current cell (containing this formula)
|
|
*
|
|
* @return string
|
|
*/
|
|
public static function text($cellReference = '', ?Cell $cell = null)
|
|
{
|
|
if ($cell === null) {
|
|
return ExcelError::REF();
|
|
}
|
|
|
|
\preg_match('/^' . Calculation::CALCULATION_REGEXP_CELLREF . '$/i', $cellReference, $matches);
|
|
|
|
$cellReference = $matches[6] . $matches[7];
|
|
$worksheetName = \trim($matches[3], "'");
|
|
$worksheet = (!empty($worksheetName))
|
|
? $cell->getWorksheet()->getParent()->getSheetByName($worksheetName)
|
|
: $cell->getWorksheet();
|
|
|
|
if (
|
|
$worksheet === null ||
|
|
!$worksheet->cellExists($cellReference) ||
|
|
!$worksheet->getCell($cellReference)->isFormula()
|
|
) {
|
|
return ExcelError::NA();
|
|
}
|
|
|
|
return $worksheet->getCell($cellReference)->getValue();
|
|
}
|
|
}
|