Move documentation builder to infra so that it isn't included in non `--dev` composer downloads
Unit test for locale builder Add new function stubs (as dummy) to Calculation list of functions
This commit is contained in:
parent
290c125e2e
commit
e0e5a81d69
|
|
@ -2,12 +2,13 @@
|
|||
<?php
|
||||
|
||||
use PhpOffice\PhpSpreadsheet\Calculation\Calculation;
|
||||
use PhpOffice\PhpSpreadsheet\DocumentGenerator;
|
||||
use PhpOffice\PhpSpreadsheetInfra\DocumentGenerator;
|
||||
|
||||
require_once 'vendor/autoload.php';
|
||||
|
||||
try {
|
||||
$phpSpreadsheetFunctionsProperty = (new ReflectionClass(Calculation::class))->getProperty('phpSpreadsheetFunctions');
|
||||
$phpSpreadsheetFunctionsProperty = (new ReflectionClass(Calculation::class))
|
||||
->getProperty('phpSpreadsheetFunctions');
|
||||
$phpSpreadsheetFunctionsProperty->setAccessible(true);
|
||||
$phpSpreadsheetFunctions = $phpSpreadsheetFunctionsProperty->getValue();
|
||||
ksort($phpSpreadsheetFunctions);
|
||||
|
|
|
|||
|
|
@ -7,14 +7,16 @@ use PhpOffice\PhpSpreadsheetInfra\LocaleGenerator;
|
|||
require_once 'vendor/autoload.php';
|
||||
|
||||
try {
|
||||
$phpSpreadsheetFunctionsProperty = (new ReflectionClass(Calculation::class))->getProperty('phpSpreadsheetFunctions');
|
||||
$phpSpreadsheetFunctionsProperty = (new ReflectionClass(Calculation::class))
|
||||
->getProperty('phpSpreadsheetFunctions');
|
||||
$phpSpreadsheetFunctionsProperty->setAccessible(true);
|
||||
$phpSpreadsheetFunctions = $phpSpreadsheetFunctionsProperty->getValue();
|
||||
|
||||
$localeGenerator = new LocaleGenerator(
|
||||
__DIR__ . '/../src/PhpSpreadsheet/Calculation/locale/',
|
||||
realpath(__DIR__ . '/../src/PhpSpreadsheet/Calculation/locale/'),
|
||||
'Translations.xlsx',
|
||||
$phpSpreadsheetFunctions
|
||||
$phpSpreadsheetFunctions,
|
||||
true
|
||||
);
|
||||
$localeGenerator->generateLocales();
|
||||
} catch (\Exception $e) {
|
||||
|
|
|
|||
|
|
@ -1,195 +0,0 @@
|
|||
<?php
|
||||
|
||||
use PhpOffice\PhpSpreadsheet\Calculation\Calculation;
|
||||
use PhpOffice\PhpSpreadsheet\Calculation\Functions;
|
||||
|
||||
error_reporting(E_ALL);
|
||||
set_time_limit(0);
|
||||
|
||||
date_default_timezone_set('UTC');
|
||||
|
||||
// Adjust the path as required to reference the PHPSpreadsheet Bootstrap file
|
||||
require_once __DIR__ . '/../samples/Bootstrap.php';
|
||||
|
||||
class ExcelFunction
|
||||
{
|
||||
public $category;
|
||||
|
||||
public $functionName;
|
||||
|
||||
public $excelVersion;
|
||||
|
||||
public $implementation;
|
||||
|
||||
public function __construct(string $category, string $functionName, string $excelVersion, string $implementation)
|
||||
{
|
||||
$this->category = $category;
|
||||
$this->functionName = $functionName;
|
||||
$this->excelVersion = $excelVersion;
|
||||
$this->implementation = $implementation;
|
||||
}
|
||||
}
|
||||
|
||||
class ColumnSettings
|
||||
{
|
||||
public $length;
|
||||
|
||||
public $title;
|
||||
|
||||
public $underline;
|
||||
|
||||
public function __construct(string $title, int $length)
|
||||
{
|
||||
$this->length = $length;
|
||||
$this->title = str_pad($title, $length, ' ');
|
||||
$this->underline = str_repeat('-', $length);
|
||||
}
|
||||
}
|
||||
|
||||
class ListBuilder
|
||||
{
|
||||
private $inputFileName;
|
||||
|
||||
public $list = [];
|
||||
|
||||
public function __construct(string $inputFileName)
|
||||
{
|
||||
$this->inputFileName = $inputFileName;
|
||||
|
||||
$this->buildList();
|
||||
uasort(
|
||||
$this->list,
|
||||
function ($a, $b) {
|
||||
$aSortName = str_replace('.', '', $a->functionName, $aCount) . str_repeat('.', $aCount);
|
||||
$bSortName = str_replace('.', '', $b->functionName, $bCount) . str_repeat('.', $bCount);
|
||||
|
||||
return $aSortName <=> $bSortName;
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
private function buildList(): void
|
||||
{
|
||||
$inputFile = new \SplFileObject($this->inputFileName);
|
||||
$category = null;
|
||||
|
||||
while (!$inputFile->eof()) {
|
||||
$line = $inputFile->fgets();
|
||||
if (strpos($line, '#') === 0) {
|
||||
if (strpos($line, '##') === 0) {
|
||||
$category = trim(substr($line, 3));
|
||||
}
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
$lineData = explode('|', $line);
|
||||
if (count($lineData) <= 1 || strpos($line, '--') === 0) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$functionData = array_map('trim', $lineData);
|
||||
|
||||
if ($functionData[0] === 'Excel Function') {
|
||||
continue;
|
||||
}
|
||||
|
||||
$function = new ExcelFunction($category, ...$functionData);
|
||||
if (array_key_exists($function->functionName, $this->list)) {
|
||||
echo " ERROR: Duplicate entry for function {$function->functionName} in master file", PHP_EOL;
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
$this->list[$function->functionName] = $function;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class AlphabeticFileWriter
|
||||
{
|
||||
private $outputFileName;
|
||||
|
||||
private $outputFile;
|
||||
|
||||
public function __construct(string $outputFileName)
|
||||
{
|
||||
$this->outputFileName = $outputFileName;
|
||||
}
|
||||
|
||||
public function generate(ExcelFunction ...$functionList): void
|
||||
{
|
||||
$this->outputFile = new \SplFileObject($this->outputFileName, 'w');
|
||||
|
||||
$this->excelFunctionColumnSettings = new ColumnSettings('Excel Function', max(array_map('strlen', array_column($functionList, 'functionName'))));
|
||||
$this->categoryColumnSettings = new ColumnSettings('Category', max(array_map('strlen', array_column($functionList, 'category'))));
|
||||
$this->excelVersionColumnSettings = new ColumnSettings('Excel Version', 13);
|
||||
$this->phpSpreadsheetFunctionColumnSettings = new ColumnSettings('PhpSpreadsheet Function', 24);
|
||||
|
||||
$this->header();
|
||||
$this->body(...$functionList);
|
||||
}
|
||||
|
||||
private function header(): void
|
||||
{
|
||||
$this->outputFile->fwrite('# Function list by name' . PHP_EOL);
|
||||
}
|
||||
|
||||
private function body(ExcelFunction ...$functionList): void
|
||||
{
|
||||
$initialCharacter = null;
|
||||
|
||||
foreach ($functionList as $excelFunction) {
|
||||
if (substr($excelFunction->functionName, 0, 1) !== $initialCharacter) {
|
||||
$initialCharacter = $this->subHeader($excelFunction);
|
||||
}
|
||||
|
||||
$functionName = str_pad($excelFunction->functionName, $this->excelFunctionColumnSettings->length, ' ');
|
||||
$category = str_pad($excelFunction->category, $this->categoryColumnSettings->length, ' ');
|
||||
$excelVersion = str_pad($excelFunction->excelVersion, $this->excelVersionColumnSettings->length, ' ');
|
||||
$this->outputFile->fwrite("{$functionName} | {$category} | {$excelVersion} | {$excelFunction->implementation}" . PHP_EOL);
|
||||
}
|
||||
}
|
||||
|
||||
private function subHeader(ExcelFunction $excelFunction)
|
||||
{
|
||||
$initialCharacter = substr($excelFunction->functionName, 0, 1);
|
||||
|
||||
$this->outputFile->fwrite(PHP_EOL . "## {$initialCharacter}" . PHP_EOL . PHP_EOL);
|
||||
$this->outputFile->fwrite("{$this->excelFunctionColumnSettings->title} | {$this->categoryColumnSettings->title} | {$this->excelVersionColumnSettings->title} | {$this->phpSpreadsheetFunctionColumnSettings->title}" . PHP_EOL);
|
||||
$this->outputFile->fwrite("{$this->excelFunctionColumnSettings->underline}-|-{$this->categoryColumnSettings->underline}-|-{$this->excelVersionColumnSettings->underline}-|-{$this->phpSpreadsheetFunctionColumnSettings->underline}" . PHP_EOL);
|
||||
|
||||
return $initialCharacter;
|
||||
}
|
||||
}
|
||||
|
||||
$folder = __DIR__ . '/../docs/references/';
|
||||
$inputFileName = 'function-list-by-category.md';
|
||||
$outputFileName = 'function-list-by-name.md';
|
||||
|
||||
echo "Building list of functions from master file {$inputFileName}", PHP_EOL;
|
||||
$listBuilder = new ListBuilder($folder . $inputFileName);
|
||||
|
||||
echo "Building new documentation list of alphabetic functions in {$outputFileName}", PHP_EOL;
|
||||
$alphabeticFileWriter = new AlphabeticFileWriter($folder . $outputFileName);
|
||||
$alphabeticFileWriter->generate(...array_values($listBuilder->list));
|
||||
|
||||
echo 'Identifying discrepancies between the master file and the Calculation Engine codebase', PHP_EOL;
|
||||
$definedFunctions = (new Calculation())->getFunctions();
|
||||
|
||||
foreach ($listBuilder->list as $excelFunction) {
|
||||
if (!array_key_exists($excelFunction->functionName, $definedFunctions)) {
|
||||
echo " ERROR: Function {$excelFunction->functionName}() of category {$excelFunction->category} is not defined in the Calculation Engine", PHP_EOL;
|
||||
} elseif (array_key_exists($excelFunction->functionName, $definedFunctions) && $excelFunction->implementation === '**Not yet Implemented**') {
|
||||
if ($definedFunctions[$excelFunction->functionName]['functionCall'] !== [Functions::class, 'DUMMY']) {
|
||||
echo " ERROR: Function {$excelFunction->functionName}() of category {$excelFunction->category} is flagged as not yet implemented in the documentation", PHP_EOL;
|
||||
echo ' but does have an implementation in the code', PHP_EOL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($definedFunctions as $definedFunction => $definedFunctionDetail) {
|
||||
if (!array_key_exists($definedFunction, $listBuilder->list)) {
|
||||
echo " ERROR: Function {$definedFunction}() of category {$definedFunctionDetail['category']} is defined in the Calculation Engine, but not in the master file", PHP_EOL;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
<?php
|
||||
|
||||
namespace PhpOffice\PhpSpreadsheet;
|
||||
namespace PhpOffice\PhpSpreadsheetInfra;
|
||||
|
||||
use PhpOffice\PhpSpreadsheet\Calculation\Category;
|
||||
use PhpOffice\PhpSpreadsheet\Calculation\Functions;
|
||||
|
|
@ -43,6 +43,8 @@ class LocaleGenerator
|
|||
*/
|
||||
protected $translationSpreadsheet;
|
||||
|
||||
protected $verbose;
|
||||
|
||||
/**
|
||||
* @var Worksheet
|
||||
*/
|
||||
|
|
@ -64,11 +66,13 @@ class LocaleGenerator
|
|||
public function __construct(
|
||||
string $translationBaseFolder,
|
||||
string $translationSpreadsheetName,
|
||||
array $phpSpreadsheetFunctions
|
||||
array $phpSpreadsheetFunctions,
|
||||
bool $verbose = false
|
||||
) {
|
||||
$this->translationBaseFolder = $translationBaseFolder;
|
||||
$this->translationSpreadsheetName = $translationSpreadsheetName;
|
||||
$this->phpSpreadsheetFunctions = $phpSpreadsheetFunctions;
|
||||
$this->verbose = $verbose;
|
||||
}
|
||||
|
||||
public function generateLocales(): void
|
||||
|
|
@ -110,7 +114,7 @@ class LocaleGenerator
|
|||
} else {
|
||||
$errorCodeTranslation = "{$errorCode}" . PHP_EOL;
|
||||
fwrite($configFile, $errorCodeTranslation);
|
||||
echo "No {$language} translation available for error code {$errorCode}", PHP_EOL;
|
||||
$this->log("No {$language} translation available for error code {$errorCode}");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -125,7 +129,7 @@ class LocaleGenerator
|
|||
$functionTranslation = "ArgumentSeparator = {$localeValue}" . PHP_EOL;
|
||||
fwrite($configFile, $functionTranslation);
|
||||
} else {
|
||||
echo 'No Argument Separator defined', PHP_EOL;
|
||||
$this->log('No Argument Separator defined');
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -142,12 +146,12 @@ class LocaleGenerator
|
|||
if ($this->isFunctionCategoryEntry($translationCell)) {
|
||||
$this->writeFileSectionHeader($functionFile, "{$translationValue} ({$functionName})");
|
||||
} elseif (!array_key_exists($functionName, $this->phpSpreadsheetFunctions)) {
|
||||
echo "Function {$functionName} is not defined in PhpSpreadsheet", PHP_EOL;
|
||||
$this->log("Function {$functionName} is not defined in PhpSpreadsheet");
|
||||
} elseif (!empty($translationValue)) {
|
||||
$functionTranslation = "{$functionName} = {$translationValue}" . PHP_EOL;
|
||||
fwrite($functionFile, $functionTranslation);
|
||||
} else {
|
||||
echo "No {$language} translation available for function {$functionName}", PHP_EOL;
|
||||
$this->log("No {$language} translation available for function {$functionName}");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -156,11 +160,11 @@ class LocaleGenerator
|
|||
|
||||
protected function openConfigFile(string $locale, string $language, string $localeLanguage)
|
||||
{
|
||||
echo "Building locale {$locale} ($language) configuration", PHP_EOL;
|
||||
$this->log("Building locale {$locale} ($language) configuration");
|
||||
$localeFolder = $this->getLocaleFolder($locale);
|
||||
|
||||
$configFileName = realpath($localeFolder . DIRECTORY_SEPARATOR . 'config');
|
||||
echo "Writing locale configuration to {$configFileName}", PHP_EOL;
|
||||
$this->log("Writing locale configuration to {$configFileName}");
|
||||
|
||||
$configFile = fopen($configFileName, 'wb');
|
||||
$this->writeFileHeader($configFile, $localeLanguage, $language, 'locale settings');
|
||||
|
|
@ -170,11 +174,11 @@ class LocaleGenerator
|
|||
|
||||
protected function openFunctionNameFile(string $locale, string $language, string $localeLanguage)
|
||||
{
|
||||
echo "Building locale {$locale} ($language) function names", PHP_EOL;
|
||||
$this->log("Building locale {$locale} ($language) function names");
|
||||
$localeFolder = $this->getLocaleFolder($locale);
|
||||
|
||||
$functionFileName = realpath($localeFolder . DIRECTORY_SEPARATOR . 'functions');
|
||||
echo "Writing local function names to {$functionFileName}", PHP_EOL;
|
||||
$this->log("Writing local function names to {$functionFileName}");
|
||||
|
||||
$functionFile = fopen($functionFileName, 'wb');
|
||||
$this->writeFileHeader($functionFile, $localeLanguage, $language, 'function name translations');
|
||||
|
|
@ -231,7 +235,7 @@ class LocaleGenerator
|
|||
protected function mapLanguageColumns(Worksheet $translationWorksheet): array
|
||||
{
|
||||
$sheetName = $translationWorksheet->getTitle();
|
||||
echo "Mapping Languages for {$sheetName}:", PHP_EOL;
|
||||
$this->log("Mapping Languages for {$sheetName}:");
|
||||
|
||||
$baseColumn = self::ENGLISH_REFERENCE_COLUMN;
|
||||
$languagesList = $translationWorksheet->getColumnIterator(++$baseColumn);
|
||||
|
|
@ -245,7 +249,7 @@ class LocaleGenerator
|
|||
/** @var Cell $cell */
|
||||
if ($this->localeCanBeSupported($translationWorksheet, $cell)) {
|
||||
$languageNameMap[$cell->getColumn()] = $cell->getValue();
|
||||
echo $cell->getColumn(), ' -> ', $cell->getValue(), PHP_EOL;
|
||||
$this->log($cell->getColumn() . ' -> ' . $cell->getValue());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -270,7 +274,7 @@ class LocaleGenerator
|
|||
|
||||
protected function mapErrorCodeRows(): void
|
||||
{
|
||||
echo 'Mapping Error Codes:', PHP_EOL;
|
||||
$this->log('Mapping Error Codes:');
|
||||
$errorList = $this->localeTranslations->getRowIterator(self::ERROR_CODES_FIRST_ROW);
|
||||
|
||||
foreach ($errorList as $errorRow) {
|
||||
|
|
@ -280,7 +284,7 @@ class LocaleGenerator
|
|||
foreach ($cells as $cell) {
|
||||
/** @var Cell $cell */
|
||||
if ($cell->getValue() != '') {
|
||||
echo $cell->getRow(), ' -> ', $cell->getValue(), PHP_EOL;
|
||||
$this->log($cell->getRow() . ' -> ' . $cell->getValue());
|
||||
$this->errorCodeMap[$cell->getValue()] = $cell->getRow();
|
||||
}
|
||||
}
|
||||
|
|
@ -289,7 +293,7 @@ class LocaleGenerator
|
|||
|
||||
protected function mapFunctionNameRows(): void
|
||||
{
|
||||
echo 'Mapping Functions:', PHP_EOL;
|
||||
$this->log('Mapping Functions:');
|
||||
$functionList = $this->functionNameTranslations->getRowIterator(self::FUNCTION_NAME_LIST_FIRST_ROW);
|
||||
|
||||
foreach ($functionList as $functionRow) {
|
||||
|
|
@ -300,7 +304,7 @@ class LocaleGenerator
|
|||
/** @var Cell $cell */
|
||||
if ($this->isFunctionCategoryEntry($cell)) {
|
||||
if (!empty($cell->getValue())) {
|
||||
echo 'CATEGORY: ', $cell->getValue(), PHP_EOL;
|
||||
$this->log('CATEGORY: ' . $cell->getValue());
|
||||
$this->functionNameMap[$cell->getValue()] = $cell->getRow();
|
||||
}
|
||||
|
||||
|
|
@ -308,10 +312,10 @@ class LocaleGenerator
|
|||
}
|
||||
if ($cell->getValue() != '') {
|
||||
if (is_bool($cell->getValue())) {
|
||||
echo $cell->getRow(), ' -> ', ($cell->getValue() ? 'TRUE' : 'FALSE'), PHP_EOL;
|
||||
$this->log($cell->getRow() . ' -> ' . ($cell->getValue() ? 'TRUE' : 'FALSE'));
|
||||
$this->functionNameMap[($cell->getValue() ? 'TRUE' : 'FALSE')] = $cell->getRow();
|
||||
} else {
|
||||
echo $cell->getRow(), ' -> ', $cell->getValue(), PHP_EOL;
|
||||
$this->log($cell->getRow() . ' -> ' . $cell->getValue());
|
||||
$this->functionNameMap[$cell->getValue()] = $cell->getRow();
|
||||
}
|
||||
}
|
||||
|
|
@ -328,4 +332,15 @@ class LocaleGenerator
|
|||
|
||||
return false;
|
||||
}
|
||||
|
||||
private function log(string $message): void
|
||||
{
|
||||
if ($this->verbose === false) {
|
||||
return;
|
||||
}
|
||||
|
||||
echo $message, PHP_EOL;
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -299,6 +299,11 @@ class Calculation
|
|||
'functionCall' => [Functions::class, 'DUMMY'],
|
||||
'argumentCount' => '1',
|
||||
],
|
||||
'ARRAYTOTEXT' => [
|
||||
'category' => Category::CATEGORY_TEXT_AND_DATA,
|
||||
'functionCall' => [Functions::class, 'DUMMY'],
|
||||
'argumentCount' => '?',
|
||||
],
|
||||
'ASC' => [
|
||||
'category' => Category::CATEGORY_TEXT_AND_DATA,
|
||||
'functionCall' => [Functions::class, 'DUMMY'],
|
||||
|
|
@ -766,6 +771,11 @@ class Calculation
|
|||
'functionCall' => [DateTimeExcel\Difference::class, 'interval'],
|
||||
'argumentCount' => '2,3',
|
||||
],
|
||||
'DATESTRING' => [
|
||||
'category' => Category::CATEGORY_DATE_AND_TIME,
|
||||
'functionCall' => [Functions::class, 'DUMMY'],
|
||||
'argumentCount' => '?',
|
||||
],
|
||||
'DATEVALUE' => [
|
||||
'category' => Category::CATEGORY_DATE_AND_TIME,
|
||||
'functionCall' => [DateTimeExcel\DateValue::class, 'fromString'],
|
||||
|
|
@ -1527,6 +1537,11 @@ class Calculation
|
|||
'functionCall' => [Functions::class, 'isText'],
|
||||
'argumentCount' => '1',
|
||||
],
|
||||
'ISTHAIDIGIT' => [
|
||||
'category' => Category::CATEGORY_TEXT_AND_DATA,
|
||||
'functionCall' => [Functions::class, 'DUMMY'],
|
||||
'argumentCount' => '?',
|
||||
],
|
||||
'JIS' => [
|
||||
'category' => Category::CATEGORY_TEXT_AND_DATA,
|
||||
'functionCall' => [Functions::class, 'DUMMY'],
|
||||
|
|
@ -1842,6 +1857,11 @@ class Calculation
|
|||
'functionCall' => [Financial\CashFlow\Variable\Periodic::class, 'presentValue'],
|
||||
'argumentCount' => '2+',
|
||||
],
|
||||
'NUMBERSTRING' => [
|
||||
'category' => Category::CATEGORY_TEXT_AND_DATA,
|
||||
'functionCall' => [Functions::class, 'DUMMY'],
|
||||
'argumentCount' => '?',
|
||||
],
|
||||
'NUMBERVALUE' => [
|
||||
'category' => Category::CATEGORY_TEXT_AND_DATA,
|
||||
'functionCall' => [TextData\Format::class, 'NUMBERVALUE'],
|
||||
|
|
@ -2124,6 +2144,16 @@ class Calculation
|
|||
'functionCall' => [MathTrig\Round::class, 'round'],
|
||||
'argumentCount' => '2',
|
||||
],
|
||||
'ROUNDBAHTDOWN' => [
|
||||
'category' => Category::CATEGORY_MATH_AND_TRIG,
|
||||
'functionCall' => [Functions::class, 'DUMMY'],
|
||||
'argumentCount' => '?',
|
||||
],
|
||||
'ROUNDBAHTUP' => [
|
||||
'category' => Category::CATEGORY_MATH_AND_TRIG,
|
||||
'functionCall' => [Functions::class, 'DUMMY'],
|
||||
'argumentCount' => '?',
|
||||
],
|
||||
'ROUNDDOWN' => [
|
||||
'category' => Category::CATEGORY_MATH_AND_TRIG,
|
||||
'functionCall' => [MathTrig\Round::class, 'down'],
|
||||
|
|
@ -2427,6 +2457,41 @@ class Calculation
|
|||
'functionCall' => [TextData\Concatenate::class, 'TEXTJOIN'],
|
||||
'argumentCount' => '3+',
|
||||
],
|
||||
'THAIDAYOFWEEK' => [
|
||||
'category' => Category::CATEGORY_DATE_AND_TIME,
|
||||
'functionCall' => [Functions::class, 'DUMMY'],
|
||||
'argumentCount' => '?',
|
||||
],
|
||||
'THAIDIGIT' => [
|
||||
'category' => Category::CATEGORY_TEXT_AND_DATA,
|
||||
'functionCall' => [Functions::class, 'DUMMY'],
|
||||
'argumentCount' => '?',
|
||||
],
|
||||
'THAIMONTHOFYEAR' => [
|
||||
'category' => Category::CATEGORY_DATE_AND_TIME,
|
||||
'functionCall' => [Functions::class, 'DUMMY'],
|
||||
'argumentCount' => '?',
|
||||
],
|
||||
'THAINUMSOUND' => [
|
||||
'category' => Category::CATEGORY_TEXT_AND_DATA,
|
||||
'functionCall' => [Functions::class, 'DUMMY'],
|
||||
'argumentCount' => '?',
|
||||
],
|
||||
'THAINUMSTRING' => [
|
||||
'category' => Category::CATEGORY_TEXT_AND_DATA,
|
||||
'functionCall' => [Functions::class, 'DUMMY'],
|
||||
'argumentCount' => '?',
|
||||
],
|
||||
'THAISTRINGLENGTH' => [
|
||||
'category' => Category::CATEGORY_TEXT_AND_DATA,
|
||||
'functionCall' => [Functions::class, 'DUMMY'],
|
||||
'argumentCount' => '?',
|
||||
],
|
||||
'THAIYEAR' => [
|
||||
'category' => Category::CATEGORY_DATE_AND_TIME,
|
||||
'functionCall' => [Functions::class, 'DUMMY'],
|
||||
'argumentCount' => '?',
|
||||
],
|
||||
'TIME' => [
|
||||
'category' => Category::CATEGORY_DATE_AND_TIME,
|
||||
'functionCall' => [DateTimeExcel\Time::class, 'fromHMS'],
|
||||
|
|
@ -2532,6 +2597,11 @@ class Calculation
|
|||
'functionCall' => [TextData\Format::class, 'VALUE'],
|
||||
'argumentCount' => '1',
|
||||
],
|
||||
'VALUETOTEXT' => [
|
||||
'category' => Category::CATEGORY_TEXT_AND_DATA,
|
||||
'functionCall' => [Functions::class, 'DUMMY'],
|
||||
'argumentCount' => '?',
|
||||
],
|
||||
'VAR' => [
|
||||
'category' => Category::CATEGORY_STATISTICAL,
|
||||
'functionCall' => [Statistical\Variances::class, 'VAR'],
|
||||
|
|
|
|||
|
|
@ -39,6 +39,7 @@ DVARP = DVARIANSP
|
|||
##
|
||||
DATE = DATO
|
||||
DATEDIF = DATO.FORSKEL
|
||||
DATESTRING = DATOSTRENG
|
||||
DATEVALUE = DATOVÆRDI
|
||||
DAY = DAG
|
||||
DAYS = DAGE
|
||||
|
|
@ -53,6 +54,9 @@ NETWORKDAYS = ANTAL.ARBEJDSDAGE
|
|||
NETWORKDAYS.INTL = ANTAL.ARBEJDSDAGE.INTL
|
||||
NOW = NU
|
||||
SECOND = SEKUND
|
||||
THAIDAYOFWEEK = THAILANDSKUGEDAG
|
||||
THAIMONTHOFYEAR = THAILANDSKMÅNED
|
||||
THAIYEAR = THAILANDSKÅR
|
||||
TIME = TID
|
||||
TIMEVALUE = TIDSVÆRDI
|
||||
TODAY = IDAG
|
||||
|
|
@ -301,6 +305,8 @@ RAND = SLUMP
|
|||
RANDBETWEEN = SLUMPMELLEM
|
||||
ROMAN = ROMERTAL
|
||||
ROUND = AFRUND
|
||||
ROUNDBAHTDOWN = RUNDBAHTNED
|
||||
ROUNDBAHTUP = RUNDBAHTOP
|
||||
ROUNDDOWN = RUND.NED
|
||||
ROUNDUP = RUND.OP
|
||||
SEC = SEC
|
||||
|
|
@ -450,10 +456,12 @@ DOLLAR = KR
|
|||
EXACT = EKSAKT
|
||||
FIND = FIND
|
||||
FIXED = FAST
|
||||
ISTHAIDIGIT = ERTHAILANDSKCIFFER
|
||||
LEFT = VENSTRE
|
||||
LEN = LÆNGDE
|
||||
LOWER = SMÅ.BOGSTAVER
|
||||
MID = MIDT
|
||||
NUMBERSTRING = TALSTRENG
|
||||
NUMBERVALUE = TALVÆRDI
|
||||
PHONETIC = FONETISK
|
||||
PROPER = STORT.FORBOGSTAV
|
||||
|
|
@ -465,6 +473,10 @@ SUBSTITUTE = UDSKIFT
|
|||
T = T
|
||||
TEXT = TEKST
|
||||
TEXTJOIN = TEKST.KOMBINER
|
||||
THAIDIGIT = THAILANDSKCIFFER
|
||||
THAINUMSOUND = THAILANDSKNUMLYD
|
||||
THAINUMSTRING = THAILANDSKNUMSTRENG
|
||||
THAISTRINGLENGTH = THAILANDSKSTRENGLÆNGDE
|
||||
TRIM = FJERN.OVERFLØDIGE.BLANKE
|
||||
UNICHAR = UNICHAR
|
||||
UNICODE = UNICODE
|
||||
|
|
|
|||
|
|
@ -52,6 +52,9 @@ NETWORKDAYS = NETTOARBEITSTAGE
|
|||
NETWORKDAYS.INTL = NETTOARBEITSTAGE.INTL
|
||||
NOW = JETZT
|
||||
SECOND = SEKUNDE
|
||||
THAIDAYOFWEEK = THAIWOCHENTAG
|
||||
THAIMONTHOFYEAR = THAIMONATDESJAHRES
|
||||
THAIYEAR = THAIJAHR
|
||||
TIME = ZEIT
|
||||
TIMEVALUE = ZEITWERT
|
||||
TODAY = HEUTE
|
||||
|
|
@ -300,6 +303,8 @@ RAND = ZUFALLSZAHL
|
|||
RANDBETWEEN = ZUFALLSBEREICH
|
||||
ROMAN = RÖMISCH
|
||||
ROUND = RUNDEN
|
||||
ROUNDBAHTDOWN = RUNDBAHTNED
|
||||
ROUNDBAHTUP = BAHTAUFRUNDEN
|
||||
ROUNDDOWN = ABRUNDEN
|
||||
ROUNDUP = AUFRUNDEN
|
||||
SEC = SEC
|
||||
|
|
@ -449,6 +454,7 @@ DOLLAR = DM
|
|||
EXACT = IDENTISCH
|
||||
FIND = FINDEN
|
||||
FIXED = FEST
|
||||
ISTHAIDIGIT = ISTTHAIZAHLENWORT
|
||||
LEFT = LINKS
|
||||
LEN = LÄNGE
|
||||
LOWER = KLEIN
|
||||
|
|
@ -463,6 +469,10 @@ SUBSTITUTE = WECHSELN
|
|||
T = T
|
||||
TEXT = TEXT
|
||||
TEXTJOIN = TEXTVERKETTEN
|
||||
THAIDIGIT = THAIZAHLENWORT
|
||||
THAINUMSOUND = THAIZAHLSOUND
|
||||
THAINUMSTRING = THAILANDSKNUMSTRENG
|
||||
THAISTRINGLENGTH = THAIZEICHENFOLGENLÄNGE
|
||||
TRIM = GLÄTTEN
|
||||
UNICHAR = UNIZEICHEN
|
||||
UNICODE = UNICODE
|
||||
|
|
|
|||
|
|
@ -39,6 +39,7 @@ DVARP = BDVARP
|
|||
##
|
||||
DATE = FECHA
|
||||
DATEDIF = SIFECHA
|
||||
DATESTRING = CADENA.FECHA
|
||||
DATEVALUE = FECHANUMERO
|
||||
DAY = DIA
|
||||
DAYS = DIAS
|
||||
|
|
@ -53,6 +54,9 @@ NETWORKDAYS = DIAS.LAB
|
|||
NETWORKDAYS.INTL = DIAS.LAB.INTL
|
||||
NOW = AHORA
|
||||
SECOND = SEGUNDO
|
||||
THAIDAYOFWEEK = DIASEMTAI
|
||||
THAIMONTHOFYEAR = MESAÑOTAI
|
||||
THAIYEAR = AÑOTAI
|
||||
TIME = NSHORA
|
||||
TIMEVALUE = HORANUMERO
|
||||
TODAY = HOY
|
||||
|
|
@ -301,6 +305,8 @@ RAND = ALEATORIO
|
|||
RANDBETWEEN = ALEATORIO.ENTRE
|
||||
ROMAN = NUMERO.ROMANO
|
||||
ROUND = REDONDEAR
|
||||
ROUNDBAHTDOWN = REDONDEAR.BAHT.MAS
|
||||
ROUNDBAHTUP = REDONDEAR.BAHT.MENOS
|
||||
ROUNDDOWN = REDONDEAR.MENOS
|
||||
ROUNDUP = REDONDEAR.MAS
|
||||
SEC = SEC
|
||||
|
|
@ -450,10 +456,12 @@ DOLLAR = MONEDA
|
|||
EXACT = IGUAL
|
||||
FIND = ENCONTRAR
|
||||
FIXED = DECIMAL
|
||||
ISTHAIDIGIT = ESDIGITOTAI
|
||||
LEFT = IZQUIERDA
|
||||
LEN = LARGO
|
||||
LOWER = MINUSC
|
||||
MID = EXTRAE
|
||||
NUMBERSTRING = CADENA.NUMERO
|
||||
NUMBERVALUE = VALOR.NUMERO
|
||||
PHONETIC = FONETICO
|
||||
PROPER = NOMPROPIO
|
||||
|
|
@ -465,6 +473,10 @@ SUBSTITUTE = SUSTITUIR
|
|||
T = T
|
||||
TEXT = TEXTO
|
||||
TEXTJOIN = UNIRCADENAS
|
||||
THAIDIGIT = DIGITOTAI
|
||||
THAINUMSOUND = SONNUMTAI
|
||||
THAINUMSTRING = CADENANUMTAI
|
||||
THAISTRINGLENGTH = LONGCADENATAI
|
||||
TRIM = ESPACIOS
|
||||
UNICHAR = UNICAR
|
||||
UNICODE = UNICODE
|
||||
|
|
|
|||
|
|
@ -39,6 +39,7 @@ DVARP = TVARIANSSIP
|
|||
##
|
||||
DATE = PÄIVÄYS
|
||||
DATEDIF = PVMERO
|
||||
DATESTRING = PVMMERKKIJONO
|
||||
DATEVALUE = PÄIVÄYSARVO
|
||||
DAY = PÄIVÄ
|
||||
DAYS = PÄIVÄT
|
||||
|
|
@ -53,6 +54,9 @@ NETWORKDAYS = TYÖPÄIVÄT
|
|||
NETWORKDAYS.INTL = TYÖPÄIVÄT.KANSVÄL
|
||||
NOW = NYT
|
||||
SECOND = SEKUNNIT
|
||||
THAIDAYOFWEEK = THAI.VIIKONPÄIVÄ
|
||||
THAIMONTHOFYEAR = THAI.KUUKAUSI
|
||||
THAIYEAR = THAI.VUOSI
|
||||
TIME = AIKA
|
||||
TIMEVALUE = AIKA_ARVO
|
||||
TODAY = TÄMÄ.PÄIVÄ
|
||||
|
|
@ -301,6 +305,8 @@ RAND = SATUNNAISLUKU
|
|||
RANDBETWEEN = SATUNNAISLUKU.VÄLILTÄ
|
||||
ROMAN = ROMAN
|
||||
ROUND = PYÖRISTÄ
|
||||
ROUNDBAHTDOWN = PYÖRISTÄ.BAHT.ALAS
|
||||
ROUNDBAHTUP = PYÖRISTÄ.BAHT.YLÖS
|
||||
ROUNDDOWN = PYÖRISTÄ.DES.ALAS
|
||||
ROUNDUP = PYÖRISTÄ.DES.YLÖS
|
||||
SEC = SEK
|
||||
|
|
@ -450,10 +456,12 @@ DOLLAR = VALUUTTA
|
|||
EXACT = VERTAA
|
||||
FIND = ETSI
|
||||
FIXED = KIINTEÄ
|
||||
ISTHAIDIGIT = ON.THAI.NUMERO
|
||||
LEFT = VASEN
|
||||
LEN = PITUUS
|
||||
LOWER = PIENET
|
||||
MID = POIMI.TEKSTI
|
||||
NUMBERSTRING = NROMERKKIJONO
|
||||
NUMBERVALUE = NROARVO
|
||||
PHONETIC = FONEETTINEN
|
||||
PROPER = ERISNIMI
|
||||
|
|
@ -465,6 +473,10 @@ SUBSTITUTE = VAIHDA
|
|||
T = T
|
||||
TEXT = TEKSTI
|
||||
TEXTJOIN = TEKSTI.YHDISTÄ
|
||||
THAIDIGIT = THAI.NUMERO
|
||||
THAINUMSOUND = THAI.LUKU.ÄÄNI
|
||||
THAINUMSTRING = THAI.LUKU.MERKKIJONO
|
||||
THAISTRINGLENGTH = THAI.MERKKIJONON.PITUUS
|
||||
TRIM = POISTA.VÄLIT
|
||||
UNICHAR = UNICODEMERKKI
|
||||
UNICODE = UNICODE
|
||||
|
|
|
|||
|
|
@ -39,6 +39,7 @@ DVARP = AB.VAR2
|
|||
##
|
||||
DATE = DÁTUM
|
||||
DATEDIF = DÁTUMTÓLIG
|
||||
DATESTRING = DÁTUMSZÖVEG
|
||||
DATEVALUE = DÁTUMÉRTÉK
|
||||
DAY = NAP
|
||||
DAYS = NAPOK
|
||||
|
|
@ -53,6 +54,9 @@ NETWORKDAYS = ÖSSZ.MUNKANAP
|
|||
NETWORKDAYS.INTL = ÖSSZ.MUNKANAP.INTL
|
||||
NOW = MOST
|
||||
SECOND = MPERC
|
||||
THAIDAYOFWEEK = THAIHÉTNAPJA
|
||||
THAIMONTHOFYEAR = THAIHÓNAP
|
||||
THAIYEAR = THAIÉV
|
||||
TIME = IDŐ
|
||||
TIMEVALUE = IDŐÉRTÉK
|
||||
TODAY = MA
|
||||
|
|
@ -301,6 +305,8 @@ RAND = VÉL
|
|||
RANDBETWEEN = VÉLETLEN.KÖZÖTT
|
||||
ROMAN = RÓMAI
|
||||
ROUND = KEREKÍTÉS
|
||||
ROUNDBAHTDOWN = BAHTKEREK.LE
|
||||
ROUNDBAHTUP = BAHTKEREK.FEL
|
||||
ROUNDDOWN = KEREK.LE
|
||||
ROUNDUP = KEREK.FEL
|
||||
SEC = SEC
|
||||
|
|
@ -450,10 +456,12 @@ DOLLAR = FORINT
|
|||
EXACT = AZONOS
|
||||
FIND = SZÖVEG.TALÁL
|
||||
FIXED = FIX
|
||||
ISTHAIDIGIT = ON.THAI.NUMERO
|
||||
LEFT = BAL
|
||||
LEN = HOSSZ
|
||||
LOWER = KISBETŰ
|
||||
MID = KÖZÉP
|
||||
NUMBERSTRING = SZÁM.BETŰVEL
|
||||
NUMBERVALUE = SZÁMÉRTÉK
|
||||
PHONETIC = FONETIKUS
|
||||
PROPER = TNÉV
|
||||
|
|
@ -465,6 +473,10 @@ SUBSTITUTE = HELYETTE
|
|||
T = T
|
||||
TEXT = SZÖVEG
|
||||
TEXTJOIN = SZÖVEGÖSSZEFŰZÉS
|
||||
THAIDIGIT = THAISZÁM
|
||||
THAINUMSOUND = THAISZÁMHANG
|
||||
THAINUMSTRING = THAISZÁMKAR
|
||||
THAISTRINGLENGTH = THAIKARHOSSZ
|
||||
TRIM = KIMETSZ
|
||||
UNICHAR = UNIKARAKTER
|
||||
UNICODE = UNICODE
|
||||
|
|
|
|||
|
|
@ -39,6 +39,7 @@ DVARP = DB.VAR.POP
|
|||
##
|
||||
DATE = DATA
|
||||
DATEDIF = DATA.DIFF
|
||||
DATESTRING = DATA.STRINGA
|
||||
DATEVALUE = DATA.VALORE
|
||||
DAY = GIORNO
|
||||
DAYS = GIORNI
|
||||
|
|
@ -53,6 +54,9 @@ NETWORKDAYS = GIORNI.LAVORATIVI.TOT
|
|||
NETWORKDAYS.INTL = GIORNI.LAVORATIVI.TOT.INTL
|
||||
NOW = ADESSO
|
||||
SECOND = SECONDO
|
||||
THAIDAYOFWEEK = THAIGIORNODELLASETTIMANA
|
||||
THAIMONTHOFYEAR = THAIMESEDELLANNO
|
||||
THAIYEAR = THAIANNO
|
||||
TIME = ORARIO
|
||||
TIMEVALUE = ORARIO.VALORE
|
||||
TODAY = OGGI
|
||||
|
|
@ -301,6 +305,8 @@ RAND = CASUALE
|
|||
RANDBETWEEN = CASUALE.TRA
|
||||
ROMAN = ROMANO
|
||||
ROUND = ARROTONDA
|
||||
ROUNDBAHTDOWN = ARROTBAHTGIU
|
||||
ROUNDBAHTUP = ARROTBAHTSU
|
||||
ROUNDDOWN = ARROTONDA.PER.DIF
|
||||
ROUNDUP = ARROTONDA.PER.ECC
|
||||
SEC = SEC
|
||||
|
|
@ -450,10 +456,12 @@ DOLLAR = VALUTA
|
|||
EXACT = IDENTICO
|
||||
FIND = TROVA
|
||||
FIXED = FISSO
|
||||
ISTHAIDIGIT = ÈTHAICIFRA
|
||||
LEFT = SINISTRA
|
||||
LEN = LUNGHEZZA
|
||||
LOWER = MINUSC
|
||||
MID = STRINGA.ESTRAI
|
||||
NUMBERSTRING = NUMERO.STRINGA
|
||||
NUMBERVALUE = NUMERO.VALORE
|
||||
PHONETIC = FURIGANA
|
||||
PROPER = MAIUSC.INIZ
|
||||
|
|
@ -465,6 +473,10 @@ SUBSTITUTE = SOSTITUISCI
|
|||
T = T
|
||||
TEXT = TESTO
|
||||
TEXTJOIN = TESTO.UNISCI
|
||||
THAIDIGIT = THAICIFRA
|
||||
THAINUMSOUND = THAINUMSUONO
|
||||
THAINUMSTRING = THAISZÁMKAR
|
||||
THAISTRINGLENGTH = THAILUNGSTRINGA
|
||||
TRIM = ANNULLA.SPAZI
|
||||
UNICHAR = CARATT.UNI
|
||||
UNICODE = UNICODE
|
||||
|
|
|
|||
|
|
@ -39,6 +39,7 @@ DVARP = DVARIANSP
|
|||
##
|
||||
DATE = DATO
|
||||
DATEDIF = DATODIFF
|
||||
DATESTRING = DATOSTRENG
|
||||
DATEVALUE = DATOVERDI
|
||||
DAY = DAG
|
||||
DAYS = DAGER
|
||||
|
|
@ -53,6 +54,9 @@ NETWORKDAYS = NETT.ARBEIDSDAGER
|
|||
NETWORKDAYS.INTL = NETT.ARBEIDSDAGER.INTL
|
||||
NOW = NÅ
|
||||
SECOND = SEKUND
|
||||
THAIDAYOFWEEK = THAIUKEDAG
|
||||
THAIMONTHOFYEAR = THAIMÅNED
|
||||
THAIYEAR = THAIÅR
|
||||
TIME = TID
|
||||
TIMEVALUE = TIDSVERDI
|
||||
TODAY = IDAG
|
||||
|
|
@ -301,6 +305,8 @@ RAND = TILFELDIG
|
|||
RANDBETWEEN = TILFELDIGMELLOM
|
||||
ROMAN = ROMERTALL
|
||||
ROUND = AVRUND
|
||||
ROUNDBAHTDOWN = RUNDAVBAHTNEDOVER
|
||||
ROUNDBAHTUP = RUNDAVBAHTOPPOVER
|
||||
ROUNDDOWN = AVRUND.NED
|
||||
ROUNDUP = AVRUND.OPP
|
||||
SEC = SEC
|
||||
|
|
@ -451,10 +457,12 @@ DOLLAR = VALUTA
|
|||
EXACT = EKSAKT
|
||||
FIND = FINN
|
||||
FIXED = FASTSATT
|
||||
ISTHAIDIGIT = ERTHAISIFFER
|
||||
LEFT = VENSTRE
|
||||
LEN = LENGDE
|
||||
LOWER = SMÅ
|
||||
MID = DELTEKST
|
||||
NUMBERSTRING = TALLSTRENG
|
||||
NUMBERVALUE = TALLVERDI
|
||||
PHONETIC = FURIGANA
|
||||
PROPER = STOR.FORBOKSTAV
|
||||
|
|
@ -466,6 +474,10 @@ SUBSTITUTE = BYTT.UT
|
|||
T = T
|
||||
TEXT = TEKST
|
||||
TEXTJOIN = TEKST.KOMBINER
|
||||
THAIDIGIT = THAISIFFER
|
||||
THAINUMSOUND = THAINUMLYD
|
||||
THAINUMSTRING = THAINUMSTRENG
|
||||
THAISTRINGLENGTH = THAISTRENGLENGDE
|
||||
TRIM = TRIMME
|
||||
UNICHAR = UNICODETEGN
|
||||
UNICODE = UNICODE
|
||||
|
|
|
|||
|
|
@ -38,6 +38,7 @@ DVARP = DBVARP
|
|||
## Datum- en tijdfuncties (Date & Time Functions)
|
||||
##
|
||||
DATE = DATUM
|
||||
DATESTRING = DATUMNOTATIE
|
||||
DATEVALUE = DATUMWAARDE
|
||||
DAY = DAG
|
||||
DAYS = DAGEN
|
||||
|
|
@ -52,6 +53,9 @@ NETWORKDAYS = NETTO.WERKDAGEN
|
|||
NETWORKDAYS.INTL = NETWERKDAGEN.INTL
|
||||
NOW = NU
|
||||
SECOND = SECONDE
|
||||
THAIDAYOFWEEK = THAIS.WEEKDAG
|
||||
THAIMONTHOFYEAR = THAIS.MAAND.VAN.JAAR
|
||||
THAIYEAR = THAIS.JAAR
|
||||
TIME = TIJD
|
||||
TIMEVALUE = TIJDWAARDE
|
||||
TODAY = VANDAAG
|
||||
|
|
@ -300,6 +304,8 @@ RAND = ASELECT
|
|||
RANDBETWEEN = ASELECTTUSSEN
|
||||
ROMAN = ROMEINS
|
||||
ROUND = AFRONDEN
|
||||
ROUNDBAHTDOWN = BAHT.AFR.NAAR.BENEDEN
|
||||
ROUNDBAHTUP = BAHT.AFR.NAAR.BOVEN
|
||||
ROUNDDOWN = AFRONDEN.NAAR.BENEDEN
|
||||
ROUNDUP = AFRONDEN.NAAR.BOVEN
|
||||
SEC = SEC
|
||||
|
|
@ -449,10 +455,12 @@ DOLLAR = EURO
|
|||
EXACT = GELIJK
|
||||
FIND = VIND.ALLES
|
||||
FIXED = VAST
|
||||
ISTHAIDIGIT = IS.THAIS.CIJFER
|
||||
LEFT = LINKS
|
||||
LEN = LENGTE
|
||||
LOWER = KLEINE.LETTERS
|
||||
MID = DEEL
|
||||
NUMBERSTRING = GETALNOTATIE
|
||||
NUMBERVALUE = NUMERIEKE.WAARDE
|
||||
PHONETIC = FONETISCH
|
||||
PROPER = BEGINLETTERS
|
||||
|
|
@ -464,6 +472,10 @@ SUBSTITUTE = SUBSTITUEREN
|
|||
T = T
|
||||
TEXT = TEKST
|
||||
TEXTJOIN = TEKST.COMBINEREN
|
||||
THAIDIGIT = THAIS.CIJFER
|
||||
THAINUMSOUND = THAIS.GETAL.GELUID
|
||||
THAINUMSTRING = THAIS.GETAL.REEKS
|
||||
THAISTRINGLENGTH = THAIS.REEKS.LENGTE
|
||||
TRIM = SPATIES.WISSEN
|
||||
UNICHAR = UNITEKEN
|
||||
UNICODE = UNICODE
|
||||
|
|
|
|||
|
|
@ -39,6 +39,7 @@ DVARP = BD.WARIANCJA.POPUL
|
|||
##
|
||||
DATE = DATA
|
||||
DATEDIF = DATA.RÓŻNICA
|
||||
DATESTRING = DATA.CIĄG.ZNAK
|
||||
DATEVALUE = DATA.WARTOŚĆ
|
||||
DAY = DZIEŃ
|
||||
DAYS = DNI
|
||||
|
|
@ -53,6 +54,9 @@ NETWORKDAYS = DNI.ROBOCZE
|
|||
NETWORKDAYS.INTL = DNI.ROBOCZE.NIESTAND
|
||||
NOW = TERAZ
|
||||
SECOND = SEKUNDA
|
||||
THAIDAYOFWEEK = TAJ.DZIEŃ.TYGODNIA
|
||||
THAIMONTHOFYEAR = TAJ.MIESIĄC.ROKU
|
||||
THAIYEAR = TAJ.ROK
|
||||
TIME = CZAS
|
||||
TIMEVALUE = CZAS.WARTOŚĆ
|
||||
TODAY = DZIŚ
|
||||
|
|
@ -301,6 +305,8 @@ RAND = LOS
|
|||
RANDBETWEEN = LOS.ZAKR
|
||||
ROMAN = RZYMSKIE
|
||||
ROUND = ZAOKR
|
||||
ROUNDBAHTDOWN = ZAOKR.DÓŁ.BAT
|
||||
ROUNDBAHTUP = ZAOKR.GÓRA.BAT
|
||||
ROUNDDOWN = ZAOKR.DÓŁ
|
||||
ROUNDUP = ZAOKR.GÓRA
|
||||
SEC = SEC
|
||||
|
|
@ -450,10 +456,12 @@ DOLLAR = KWOTA
|
|||
EXACT = PORÓWNAJ
|
||||
FIND = ZNAJDŹ
|
||||
FIXED = ZAOKR.DO.TEKST
|
||||
ISTHAIDIGIT = CZY.CYFRA.TAJ
|
||||
LEFT = LEWY
|
||||
LEN = DŁ
|
||||
LOWER = LITERY.MAŁE
|
||||
MID = FRAGMENT.TEKSTU
|
||||
NUMBERSTRING = LICZBA.CIĄG.ZNAK
|
||||
NUMBERVALUE = WARTOŚĆ.LICZBOWA
|
||||
PROPER = Z.WIELKIEJ.LITERY
|
||||
REPLACE = ZASTĄP
|
||||
|
|
@ -464,6 +472,10 @@ SUBSTITUTE = PODSTAW
|
|||
T = T
|
||||
TEXT = TEKST
|
||||
TEXTJOIN = POŁĄCZ.TEKSTY
|
||||
THAIDIGIT = TAJ.CYFRA
|
||||
THAINUMSOUND = TAJ.DŹWIĘK.NUM
|
||||
THAINUMSTRING = TAJ.CIĄG.NUM
|
||||
THAISTRINGLENGTH = TAJ.DŁUGOŚĆ.CIĄGU
|
||||
TRIM = USUŃ.ZBĘDNE.ODSTĘPY
|
||||
UNICHAR = ZNAK.UNICODE
|
||||
UNICODE = UNICODE
|
||||
|
|
|
|||
|
|
@ -39,6 +39,7 @@ DVARP = BDVARP
|
|||
##
|
||||
DATE = DATA
|
||||
DATEDIF = DATADIF
|
||||
DATESTRING = DATA.SÉRIE
|
||||
DATEVALUE = DATA.VALOR
|
||||
DAY = DIA
|
||||
DAYS = DIAS
|
||||
|
|
@ -454,6 +455,7 @@ LEFT = ESQUERDA
|
|||
LEN = NÚM.CARACT
|
||||
LOWER = MINÚSCULA
|
||||
MID = EXT.TEXTO
|
||||
NUMBERSTRING = SEQÜÊNCIA.NÚMERO
|
||||
NUMBERVALUE = VALORNUMÉRICO
|
||||
PHONETIC = FONÉTICA
|
||||
PROPER = PRI.MAIÚSCULA
|
||||
|
|
|
|||
|
|
@ -39,6 +39,7 @@ DVARP = BDVARP
|
|||
##
|
||||
DATE = DATA
|
||||
DATEDIF = DATADIF
|
||||
DATESTRING = DATA.CADEIA
|
||||
DATEVALUE = DATA.VALOR
|
||||
DAY = DIA
|
||||
DAYS = DIAS
|
||||
|
|
@ -53,6 +54,9 @@ NETWORKDAYS = DIATRABALHOTOTAL
|
|||
NETWORKDAYS.INTL = DIATRABALHOTOTAL.INTL
|
||||
NOW = AGORA
|
||||
SECOND = SEGUNDO
|
||||
THAIDAYOFWEEK = DIA.DA.SEMANA.TAILANDÊS
|
||||
THAIMONTHOFYEAR = MÊS.DO.ANO.TAILANDÊS
|
||||
THAIYEAR = ANO.TAILANDÊS
|
||||
TIME = TEMPO
|
||||
TIMEVALUE = VALOR.TEMPO
|
||||
TODAY = HOJE
|
||||
|
|
@ -301,6 +305,8 @@ RAND = ALEATÓRIO
|
|||
RANDBETWEEN = ALEATÓRIOENTRE
|
||||
ROMAN = ROMANO
|
||||
ROUND = ARRED
|
||||
ROUNDBAHTDOWN = ARREDOND.BAHT.BAIXO
|
||||
ROUNDBAHTUP = ARREDOND.BAHT.CIMA
|
||||
ROUNDDOWN = ARRED.PARA.BAIXO
|
||||
ROUNDUP = ARRED.PARA.CIMA
|
||||
SEC = SEC
|
||||
|
|
@ -450,10 +456,12 @@ DOLLAR = MOEDA
|
|||
EXACT = EXATO
|
||||
FIND = LOCALIZAR
|
||||
FIXED = FIXA
|
||||
ISTHAIDIGIT = É.DÍGITO.TAILANDÊS
|
||||
LEFT = ESQUERDA
|
||||
LEN = NÚM.CARAT
|
||||
LOWER = MINÚSCULAS
|
||||
MID = SEG.TEXTO
|
||||
NUMBERSTRING = NÚMERO.CADEIA
|
||||
NUMBERVALUE = VALOR.NÚMERO
|
||||
PHONETIC = FONÉTICA
|
||||
PROPER = INICIAL.MAIÚSCULA
|
||||
|
|
@ -465,6 +473,10 @@ SUBSTITUTE = SUBST
|
|||
T = T
|
||||
TEXT = TEXTO
|
||||
TEXTJOIN = UNIRTEXTO
|
||||
THAIDIGIT = DÍGITO.TAILANDÊS
|
||||
THAINUMSOUND = SOM.NÚM.TAILANDÊS
|
||||
THAINUMSTRING = CADEIA.NÚM.TAILANDÊS
|
||||
THAISTRINGLENGTH = COMP.CADEIA.TAILANDÊS
|
||||
TRIM = COMPACTAR
|
||||
UNICHAR = UNICARÁT
|
||||
UNICODE = UNICODE
|
||||
|
|
|
|||
|
|
@ -39,6 +39,7 @@ DVARP = БДДИСПП
|
|||
##
|
||||
DATE = ДАТА
|
||||
DATEDIF = РАЗНДАТ
|
||||
DATESTRING = СТРОКАДАННЫХ
|
||||
DATEVALUE = ДАТАЗНАЧ
|
||||
DAY = ДЕНЬ
|
||||
DAYS = ДНИ
|
||||
|
|
@ -53,6 +54,9 @@ NETWORKDAYS = ЧИСТРАБДНИ
|
|||
NETWORKDAYS.INTL = ЧИСТРАБДНИ.МЕЖД
|
||||
NOW = ТДАТА
|
||||
SECOND = СЕКУНДЫ
|
||||
THAIDAYOFWEEK = ТАЙДЕНЬНЕД
|
||||
THAIMONTHOFYEAR = ТАЙМЕСЯЦ
|
||||
THAIYEAR = ТАЙГОД
|
||||
TIME = ВРЕМЯ
|
||||
TIMEVALUE = ВРЕМЗНАЧ
|
||||
TODAY = СЕГОДНЯ
|
||||
|
|
@ -301,6 +305,8 @@ RAND = СЛЧИС
|
|||
RANDBETWEEN = СЛУЧМЕЖДУ
|
||||
ROMAN = РИМСКОЕ
|
||||
ROUND = ОКРУГЛ
|
||||
ROUNDBAHTDOWN = ОКРУГЛБАТВНИЗ
|
||||
ROUNDBAHTUP = ОКРУГЛБАТВВЕРХ
|
||||
ROUNDDOWN = ОКРУГЛВНИЗ
|
||||
ROUNDUP = ОКРУГЛВВЕРХ
|
||||
SEC = SEC
|
||||
|
|
@ -450,10 +456,12 @@ DOLLAR = РУБЛЬ
|
|||
EXACT = СОВПАД
|
||||
FIND = НАЙТИ
|
||||
FIXED = ФИКСИРОВАННЫЙ
|
||||
ISTHAIDIGIT = TAYRAKAMIYSA
|
||||
LEFT = ЛЕВСИМВ
|
||||
LEN = ДЛСТР
|
||||
LOWER = СТРОЧН
|
||||
MID = ПСТР
|
||||
NUMBERSTRING = СТРОКАЧИСЕЛ
|
||||
NUMBERVALUE = ЧЗНАЧ
|
||||
PROPER = ПРОПНАЧ
|
||||
REPLACE = ЗАМЕНИТЬ
|
||||
|
|
@ -464,6 +472,10 @@ SUBSTITUTE = ПОДСТАВИТЬ
|
|||
T = Т
|
||||
TEXT = ТЕКСТ
|
||||
TEXTJOIN = ОБЪЕДИНИТЬ
|
||||
THAIDIGIT = ТАЙЦИФРА
|
||||
THAINUMSOUND = ТАЙЧИСЛОВЗВУК
|
||||
THAINUMSTRING = ТАЙЧИСЛОВСТРОКУ
|
||||
THAISTRINGLENGTH = ТАЙДЛИНАСТРОКИ
|
||||
TRIM = СЖПРОБЕЛЫ
|
||||
UNICHAR = ЮНИСИМВ
|
||||
UNICODE = UNICODE
|
||||
|
|
|
|||
|
|
@ -52,6 +52,9 @@ NETWORKDAYS = NETTOARBETSDAGAR
|
|||
NETWORKDAYS.INTL = NETTOARBETSDAGAR.INT
|
||||
NOW = NU
|
||||
SECOND = SEKUND
|
||||
THAIDAYOFWEEK = THAIVECKODAG
|
||||
THAIMONTHOFYEAR = THAIMÅNAD
|
||||
THAIYEAR = THAIÅR
|
||||
TIME = KLOCKSLAG
|
||||
TIMEVALUE = TIDVÄRDE
|
||||
TODAY = IDAG
|
||||
|
|
@ -300,6 +303,8 @@ RAND = SLUMP
|
|||
RANDBETWEEN = SLUMP.MELLAN
|
||||
ROMAN = ROMERSK
|
||||
ROUND = AVRUNDA
|
||||
ROUNDBAHTDOWN = AVRUNDABAHTNEDÅT
|
||||
ROUNDBAHTUP = AVRUNDABAHTUPPÅT
|
||||
ROUNDDOWN = AVRUNDA.NEDÅT
|
||||
ROUNDUP = AVRUNDA.UPPÅT
|
||||
SEC = SEK
|
||||
|
|
@ -463,6 +468,10 @@ SUBSTITUTE = BYT.UT
|
|||
T = T
|
||||
TEXT = TEXT
|
||||
TEXTJOIN = TEXTJOIN
|
||||
THAIDIGIT = THAISIFFRA
|
||||
THAINUMSOUND = THAITALLJUD
|
||||
THAINUMSTRING = THAITALSTRÄNG
|
||||
THAISTRINGLENGTH = THAISTRÄNGLÄNGD
|
||||
TRIM = RENSA
|
||||
UNICHAR = UNITECKENKOD
|
||||
UNICODE = UNICODE
|
||||
|
|
|
|||
|
|
@ -39,6 +39,7 @@ DVARP = VSEÇVARS
|
|||
##
|
||||
DATE = TARİH
|
||||
DATEDIF = ETARİHLİ
|
||||
DATESTRING = TARİHDİZİ
|
||||
DATEVALUE = TARİHSAYISI
|
||||
DAY = GÜN
|
||||
DAYS = GÜNSAY
|
||||
|
|
@ -53,6 +54,9 @@ NETWORKDAYS = TAMİŞGÜNÜ
|
|||
NETWORKDAYS.INTL = TAMİŞGÜNÜ.ULUSL
|
||||
NOW = ŞİMDİ
|
||||
SECOND = SANİYE
|
||||
THAIDAYOFWEEK = TAYHAFTANINGÜNÜ
|
||||
THAIMONTHOFYEAR = TAYYILINAYI
|
||||
THAIYEAR = TAYYILI
|
||||
TIME = ZAMAN
|
||||
TIMEVALUE = ZAMANSAYISI
|
||||
TODAY = BUGÜN
|
||||
|
|
@ -301,6 +305,8 @@ RAND = S_SAYI_ÜRET
|
|||
RANDBETWEEN = RASTGELEARADA
|
||||
ROMAN = ROMEN
|
||||
ROUND = YUVARLA
|
||||
ROUNDBAHTDOWN = BAHTAŞAĞIYUVARLA
|
||||
ROUNDBAHTUP = BAHTYUKARIYUVARLA
|
||||
ROUNDDOWN = AŞAĞIYUVARLA
|
||||
ROUNDUP = YUKARIYUVARLA
|
||||
SEC = SEC
|
||||
|
|
@ -450,10 +456,12 @@ DOLLAR = LİRA
|
|||
EXACT = ÖZDEŞ
|
||||
FIND = BUL
|
||||
FIXED = SAYIDÜZENLE
|
||||
ISTHAIDIGIT = TAYRAKAMIYSA
|
||||
LEFT = SOLDAN
|
||||
LEN = UZUNLUK
|
||||
LOWER = KÜÇÜKHARF
|
||||
MID = PARÇAAL
|
||||
NUMBERSTRING = SAYIDİZİ
|
||||
NUMBERVALUE = SAYIDEĞERİ
|
||||
PHONETIC = SES
|
||||
PROPER = YAZIM.DÜZENİ
|
||||
|
|
@ -465,6 +473,10 @@ SUBSTITUTE = YERİNEKOY
|
|||
T = M
|
||||
TEXT = METNEÇEVİR
|
||||
TEXTJOIN = METİNBİRLEŞTİR
|
||||
THAIDIGIT = TAYRAKAM
|
||||
THAINUMSOUND = TAYSAYISES
|
||||
THAINUMSTRING = TAYSAYIDİZE
|
||||
THAISTRINGLENGTH = TAYDİZEUZUNLUĞU
|
||||
TRIM = KIRP
|
||||
UNICHAR = UNICODEKARAKTERİ
|
||||
UNICODE = UNICODE
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ class Font extends Supervisor
|
|||
protected $name = 'Calibri';
|
||||
|
||||
/**
|
||||
* Font Size.
|
||||
* Font Size in points.
|
||||
*
|
||||
* @var null|float
|
||||
*/
|
||||
|
|
@ -249,20 +249,27 @@ class Font extends Supervisor
|
|||
/**
|
||||
* Set Size.
|
||||
*
|
||||
* @param float $pValue
|
||||
* @param float $fontSizeInPoints
|
||||
*
|
||||
* @return $this
|
||||
*/
|
||||
public function setSize($pValue)
|
||||
public function setSize($fontSizeInPoints)
|
||||
{
|
||||
if ($pValue == '') {
|
||||
$pValue = 10;
|
||||
if (is_string($fontSizeInPoints) || is_int($fontSizeInPoints)) {
|
||||
$fontSizeInPoints = (float) $fontSizeInPoints; // $pValue = 0 if given string is not numeric
|
||||
}
|
||||
|
||||
// Size must be a positive floating point number
|
||||
// ECMA-376-1:2016, part 1, chapter 18.4.11 sz (Font Size), p. 1536
|
||||
if (!is_float($fontSizeInPoints) || !($fontSizeInPoints > 0)) {
|
||||
$fontSizeInPoints = 10.0;
|
||||
}
|
||||
|
||||
if ($this->isSupervisor) {
|
||||
$styleArray = $this->getStyleArray(['size' => $pValue]);
|
||||
$styleArray = $this->getStyleArray(['size' => $fontSizeInPoints]);
|
||||
$this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray);
|
||||
} else {
|
||||
$this->size = $pValue;
|
||||
$this->size = $fontSizeInPoints;
|
||||
}
|
||||
|
||||
return $this;
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ namespace PhpOffice\PhpSpreadsheetTests;
|
|||
use PhpOffice\PhpSpreadsheet\Calculation\Category as Cat;
|
||||
use PhpOffice\PhpSpreadsheet\Calculation\Functions;
|
||||
use PhpOffice\PhpSpreadsheet\Calculation\Logical;
|
||||
use PhpOffice\PhpSpreadsheet\DocumentGenerator;
|
||||
use PhpOffice\PhpSpreadsheetInfra\DocumentGenerator;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use UnexpectedValueException;
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,41 @@
|
|||
<?php
|
||||
|
||||
namespace PhpOffice\PhpSpreadsheetTests;
|
||||
|
||||
use PhpOffice\PhpSpreadsheet\Calculation\Calculation;
|
||||
use PhpOffice\PhpSpreadsheetInfra\LocaleGenerator;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use ReflectionClass;
|
||||
|
||||
class LocaleGeneratorTest extends TestCase
|
||||
{
|
||||
public function testLocaleGenerator(): void
|
||||
{
|
||||
$phpSpreadsheetFunctionsProperty = (new ReflectionClass(Calculation::class))
|
||||
->getProperty('phpSpreadsheetFunctions');
|
||||
$phpSpreadsheetFunctionsProperty->setAccessible(true);
|
||||
$phpSpreadsheetFunctions = $phpSpreadsheetFunctionsProperty->getValue();
|
||||
|
||||
$localeGenerator = new LocaleGenerator(
|
||||
realpath(__DIR__ . '/../../src/PhpSpreadsheet/Calculation/locale/'),
|
||||
'Translations.xlsx',
|
||||
$phpSpreadsheetFunctions
|
||||
);
|
||||
$localeGenerator->generateLocales();
|
||||
|
||||
$testLocales = [
|
||||
'fr',
|
||||
'nl',
|
||||
'pt',
|
||||
'pt_br',
|
||||
'ru',
|
||||
];
|
||||
|
||||
foreach ($testLocales as $locale) {
|
||||
$locale = str_replace('_', '/', $locale);
|
||||
$path = realpath(__DIR__ . "/../../src/PhpSpreadsheet/Calculation/locale/{$locale}");
|
||||
self::assertFileExists("{$path}/config");
|
||||
self::assertFileExists("{$path}/functions");
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue