Option To Use OldCalculatedValue in ToArray and its Relatives

Fix #1810, just before it turns 6 years old. Reporter thinks it can save time. Easy to implement, especially with the advent of named parameters which were not available when issue was opened.
This commit is contained in:
oleibman
2026-01-23 14:56:16 -08:00
parent 7758d917ba
commit 7aef8b24cc
2 changed files with 54 additions and 11 deletions
@@ -0,0 +1,28 @@
<?php
declare(strict_types=1);
namespace PhpOffice\PhpSpreadsheetTests\Worksheet;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheetTests\Functional\AbstractFunctional;
class ToArrayOldCalculatedValueTest extends AbstractFunctional
{
public function testOldCalculatedValue(): void
{
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->fromArray([['A', 'B', 'C', '=1+2']]);
$reloadedSpreadsheet = $this->writeAndReload($spreadsheet, 'Xlsx');
$spreadsheet->disconnectWorksheets();
$rsheet = $reloadedSpreadsheet->getActiveSheet();
$rsheet->setCellValue('D1', '=1+3');
$array1 = $rsheet->toArray(formatData: false, calculateFormulas: false, oldCalculatedValue: true);
self::assertSame([['A', 'B', 'C', 3]], $array1, 'uses value as read from spreadsheet');
$array2 = $rsheet->toArray(formatData: false);
self::assertSame([['A', 'B', 'C', 4]], $array2, 'uses newly calculated value');
$reloadedSpreadsheet->disconnectWorksheets();
}
}