init
This commit is contained in:
commit
72a26edcff
22092 changed files with 2101903 additions and 0 deletions
82
lib/PhpSpreadsheet/Calculation/TextData/Helpers.php
Normal file
82
lib/PhpSpreadsheet/Calculation/TextData/Helpers.php
Normal file
|
|
@ -0,0 +1,82 @@
|
|||
<?php
|
||||
|
||||
namespace PhpOffice\PhpSpreadsheet\Calculation\TextData;
|
||||
|
||||
use PhpOffice\PhpSpreadsheet\Calculation\Calculation;
|
||||
use PhpOffice\PhpSpreadsheet\Calculation\Exception as CalcExp;
|
||||
use PhpOffice\PhpSpreadsheet\Calculation\Functions;
|
||||
use PhpOffice\PhpSpreadsheet\Calculation\Information\ErrorValue;
|
||||
use PhpOffice\PhpSpreadsheet\Calculation\Information\ExcelError;
|
||||
|
||||
class Helpers
|
||||
{
|
||||
public static function convertBooleanValue(bool $value): string
|
||||
{
|
||||
if (Functions::getCompatibilityMode() == Functions::COMPATIBILITY_OPENOFFICE) {
|
||||
return $value ? '1' : '0';
|
||||
}
|
||||
|
||||
return ($value) ? Calculation::getTRUE() : Calculation::getFALSE();
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mixed $value String value from which to extract characters
|
||||
*/
|
||||
public static function extractString(mixed $value, bool $throwIfError = false): string
|
||||
{
|
||||
if (is_bool($value)) {
|
||||
return self::convertBooleanValue($value);
|
||||
}
|
||||
if ($throwIfError && is_string($value) && ErrorValue::isError($value)) {
|
||||
throw new CalcExp($value);
|
||||
}
|
||||
|
||||
return (string) $value;
|
||||
}
|
||||
|
||||
public static function extractInt(mixed $value, int $minValue, int $gnumericNull = 0, bool $ooBoolOk = false): int
|
||||
{
|
||||
if ($value === null) {
|
||||
// usually 0, but sometimes 1 for Gnumeric
|
||||
$value = (Functions::getCompatibilityMode() === Functions::COMPATIBILITY_GNUMERIC) ? $gnumericNull : 0;
|
||||
}
|
||||
if (is_bool($value) && ($ooBoolOk || Functions::getCompatibilityMode() !== Functions::COMPATIBILITY_OPENOFFICE)) {
|
||||
$value = (int) $value;
|
||||
}
|
||||
if (!is_numeric($value)) {
|
||||
throw new CalcExp(ExcelError::VALUE());
|
||||
}
|
||||
$value = (int) $value;
|
||||
if ($value < $minValue) {
|
||||
throw new CalcExp(ExcelError::VALUE());
|
||||
}
|
||||
|
||||
return (int) $value;
|
||||
}
|
||||
|
||||
public static function extractFloat(mixed $value): float
|
||||
{
|
||||
if ($value === null) {
|
||||
$value = 0.0;
|
||||
}
|
||||
if (is_bool($value)) {
|
||||
$value = (float) $value;
|
||||
}
|
||||
if (!is_numeric($value)) {
|
||||
throw new CalcExp(ExcelError::VALUE());
|
||||
}
|
||||
|
||||
return (float) $value;
|
||||
}
|
||||
|
||||
public static function validateInt(mixed $value): int
|
||||
{
|
||||
if ($value === null) {
|
||||
$value = 0;
|
||||
} elseif (is_bool($value)) {
|
||||
$value = (int) $value;
|
||||
}
|
||||
|
||||
return (int) $value;
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue