diff --git a/src/PhpSpreadsheet/Calculation/ArrayEnabled.php b/src/PhpSpreadsheet/Calculation/ArrayEnabled.php index 0ad429ed..1e3f6971 100644 --- a/src/PhpSpreadsheet/Calculation/ArrayEnabled.php +++ b/src/PhpSpreadsheet/Calculation/ArrayEnabled.php @@ -20,7 +20,7 @@ trait ArrayEnabled if (self::$arrayArgumentHelper === null) { self::$arrayArgumentHelper = new ArrayArgumentHelper(); } - self::$arrayArgumentHelper->initialise($arguments ?: []); + self::$arrayArgumentHelper->initialise(($arguments === false) ? [] : $arguments); } /** diff --git a/src/PhpSpreadsheet/Helper/Html.php b/src/PhpSpreadsheet/Helper/Html.php index 4737379a..ce5a3d1d 100644 --- a/src/PhpSpreadsheet/Helper/Html.php +++ b/src/PhpSpreadsheet/Helper/Html.php @@ -795,7 +795,7 @@ class Html $domText = preg_replace( '/\s+/u', ' ', - str_replace(["\r", "\n"], ' ', $textNode->nodeValue ?: '') + str_replace(["\r", "\n"], ' ', $textNode->nodeValue ?? '') ); $this->stringData .= $domText; $this->buildTextRun(); diff --git a/src/PhpSpreadsheet/Reader/Html.php b/src/PhpSpreadsheet/Reader/Html.php index 15c9f625..437d931d 100644 --- a/src/PhpSpreadsheet/Reader/Html.php +++ b/src/PhpSpreadsheet/Reader/Html.php @@ -619,7 +619,7 @@ class Html extends BaseReader { foreach ($element->childNodes as $child) { if ($child instanceof DOMText) { - $domText = preg_replace('/\s+/u', ' ', trim($child->nodeValue ?: '')); + $domText = preg_replace('/\s+/u', ' ', trim($child->nodeValue ?? '')); if (is_string($cellContent)) { // simply append the text if the cell content is a plain text string $cellContent .= $domText; diff --git a/src/PhpSpreadsheet/Reader/Ods.php b/src/PhpSpreadsheet/Reader/Ods.php index fcafc047..27c58edb 100644 --- a/src/PhpSpreadsheet/Reader/Ods.php +++ b/src/PhpSpreadsheet/Reader/Ods.php @@ -325,7 +325,7 @@ class Ods extends BaseReader } $spreadsheet->setActiveSheetIndex($worksheetID); - if ($worksheetName) { + if ($worksheetName || is_numeric($worksheetName)) { // Use false for $updateFormulaCellReferences to prevent adjustment of worksheet references in // formula cells... during the load, all formulae should be correct, and we're simply // bringing the worksheet name in line with the formula, not the reverse @@ -628,7 +628,7 @@ class Ods extends BaseReader foreach ($settings->getElementsByTagNameNS($configNs, 'config-item') as $t) { if ($t->getAttributeNs($configNs, 'name') === 'ActiveTable') { try { - $spreadsheet->setActiveSheetIndexByName($t->nodeValue ?: ''); + $spreadsheet->setActiveSheetIndexByName($t->nodeValue ?? ''); } catch (Throwable $e) { // do nothing } diff --git a/tests/PhpSpreadsheetTests/Helper/HtmlTest.php b/tests/PhpSpreadsheetTests/Helper/HtmlTest.php index b2fadf42..3315771a 100644 --- a/tests/PhpSpreadsheetTests/Helper/HtmlTest.php +++ b/tests/PhpSpreadsheetTests/Helper/HtmlTest.php @@ -28,6 +28,7 @@ class HtmlTest extends TestCase ['können', 'können'], ['русский', 'русский'], ["foo\nbar", '

foo

bar

'], + 'issue2810' => ['0', '0'], ]; } } diff --git a/tests/PhpSpreadsheetTests/Reader/Html/Issue2810Test.php b/tests/PhpSpreadsheetTests/Reader/Html/Issue2810Test.php new file mode 100644 index 00000000..40ced6ed --- /dev/null +++ b/tests/PhpSpreadsheetTests/Reader/Html/Issue2810Test.php @@ -0,0 +1,40 @@ + + + + + Declaracion en Linea + + + + + + + + +
102
+ + + +EOF; + $reader = new Html(); + $spreadsheet = $reader->loadFromString($content); + $sheet = $spreadsheet->getActiveSheet(); + self::assertSame(1, $sheet->getCell('A1')->getValue()); + self::assertSame(0, $sheet->getCell('B1')->getValue()); + self::assertSame(2, $sheet->getCell('C1')->getValue()); + $spreadsheet->disconnectWorksheets(); + } +} diff --git a/tests/PhpSpreadsheetTests/Reader/Ods/Issue2810Test.php b/tests/PhpSpreadsheetTests/Reader/Ods/Issue2810Test.php new file mode 100644 index 00000000..bbb697b8 --- /dev/null +++ b/tests/PhpSpreadsheetTests/Reader/Ods/Issue2810Test.php @@ -0,0 +1,20 @@ +load($filename); + $sheet = $spreadsheet->getActiveSheet(); + self::assertSame('Active', $sheet->getCell('A1')->getValue()); + $spreadsheet->disconnectWorksheets(); + } +} diff --git a/tests/data/Reader/Ods/issue.2810.ods b/tests/data/Reader/Ods/issue.2810.ods new file mode 100644 index 00000000..ba8d581f Binary files /dev/null and b/tests/data/Reader/Ods/issue.2810.ods differ