mirror of
https://github.com/PHPOffice/PhpSpreadsheet.git
synced 2026-09-13 11:36:24 +00:00
Unit Tests for changing the value of a column header in a Table
This commit is contained in:
@@ -59,4 +59,55 @@ class FormulaTest extends TestCase
|
||||
|
||||
$spreadsheet->disconnectWorksheets();
|
||||
}
|
||||
|
||||
public function testCellFormulaUpdateOnHeadingColumnChange(): void
|
||||
{
|
||||
$reader = new Xlsx();
|
||||
$filename = 'tests/data/Worksheet/Table/TableFormulae.xlsx';
|
||||
$spreadsheet = $reader->load($filename);
|
||||
$worksheet = $spreadsheet->getActiveSheet();
|
||||
|
||||
// Verify original formulae
|
||||
// Row Formula
|
||||
self::assertSame("=DeptSales[[#This Row],[Sales\u{a0}Amount]]*DeptSales[[#This Row],[% Commission]]", $worksheet->getCell('E2')->getValue());
|
||||
// Totals Formula
|
||||
self::assertSame('=SUBTOTAL(109,DeptSales[Commission Amount])', $worksheet->getCell('E8')->getValue());
|
||||
|
||||
$worksheet->getCell('D1')->setValue('Commission %age');
|
||||
$worksheet->getCell('E1')->setValue('Commission');
|
||||
|
||||
// Verify modified formulae
|
||||
// Row Formula
|
||||
self::assertSame("=DeptSales[[#This Row],[Sales\u{a0}Amount]]*DeptSales[[#This Row],[Commission %age]]", $worksheet->getCell('E2')->getValue());
|
||||
// Totals Formula
|
||||
self::assertSame('=SUBTOTAL(109,DeptSales[Commission])', $worksheet->getCell('E8')->getValue());
|
||||
|
||||
$spreadsheet->disconnectWorksheets();
|
||||
}
|
||||
|
||||
public function testNamedFormulaUpdateOnHeadingColumnChange(): void
|
||||
{
|
||||
$reader = new Xlsx();
|
||||
$filename = 'tests/data/Worksheet/Table/TableFormulae.xlsx';
|
||||
$spreadsheet = $reader->load($filename);
|
||||
$worksheet = $spreadsheet->getActiveSheet();
|
||||
|
||||
$table = $spreadsheet->getActiveSheet()->getTableCollection()[0];
|
||||
if ($table === null) {
|
||||
self::markTestSkipped('Unable to read table for testing.');
|
||||
}
|
||||
$namedFormula = $spreadsheet->getNamedFormula('CommissionTotal');
|
||||
if ($namedFormula === null) {
|
||||
self::markTestSkipped('Unable to read named formula for testing.');
|
||||
}
|
||||
|
||||
// Verify original formula
|
||||
self::assertSame('SUBTOTAL(109,DeptSales[Commission Amount])', $namedFormula->getFormula());
|
||||
|
||||
$worksheet->getCell('E1')->setValue('Commission');
|
||||
// Verify modified formula
|
||||
self::assertSame('SUBTOTAL(109,DeptSales[Commission])', $namedFormula->getFormula());
|
||||
|
||||
$spreadsheet->disconnectWorksheets();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user