titles($category, $functionName, $description); // Create new PhpSpreadsheet object $spreadsheet = new Spreadsheet(); $worksheet = $spreadsheet->getActiveSheet(); $months = range(-12, 12); $testDateCount = count($months); for ($row = 1; $row <= $testDateCount; ++$row) { $worksheet->setCellValue('A' . $row, '=DATE(2020,12,31)'); $worksheet->setCellValue('B' . $row, '=A' . $row); $worksheet->setCellValue('C' . $row, $months[$row - 1]); $worksheet->setCellValue('D' . $row, '=EDATE(B' . $row . ', C' . $row . ')'); } $worksheet->getStyle('B1:B' . $testDateCount) ->getNumberFormat() ->setFormatCode('yyyy-mm-dd'); $worksheet->getStyle('D1:D' . $testDateCount) ->getNumberFormat() ->setFormatCode('yyyy-mm-dd'); // Test the formulae for ($row = 1; $row <= $testDateCount; ++$row) { $helper->log(sprintf( '%s and %d months is %d (%s)', $worksheet->getCell('B' . $row)->getFormattedValue(), $worksheet->getCell('C' . $row)->getFormattedValue(), $worksheet->getCell('D' . $row)->getCalculatedValue(), $worksheet->getCell('D' . $row)->getFormattedValue() )); }