PhpSpreadsheet/samples/13_CalculationCyclicFormulae.php
Adrien Crivelli 2922a13764
Reorganize code samples
This introduce a helper class that should be used to log things,
avoiding a lot of boilerplate code.

Also all output are made in /tmp folder instead of beside the script
itself. This is because there is a high chance that the folder containing
the script is not writtable by webserver. So using the /tmp folder
makes it more likely to works in a variety of setup.
2016-09-01 01:17:13 +09:00

32 lines
1021 B
PHP

<?php
require __DIR__ . '/Header.php';
// Create new Spreadsheet object
$helper->log('Create new Spreadsheet object');
$spreadsheet = new \PhpSpreadsheet\Spreadsheet();
// Add some data, we will use some formulas here
$helper->log('Add some data and formulas');
$spreadsheet->getActiveSheet()->setCellValue('A1', '=B1')
->setCellValue('A2', '=B2+1')
->setCellValue('B1', '=A1+1')
->setCellValue('B2', '=A2');
\PhpSpreadsheet\Calculation::getInstance($spreadsheet)->cyclicFormulaCount = 100;
// Calculated data
$helper->log('Calculated data');
for ($row = 1; $row <= 2; ++$row) {
for ($col = 'A'; $col != 'C'; ++$col) {
if ((!is_null($formula = $spreadsheet->getActiveSheet()->getCell($col . $row)->getValue())) &&
($formula[0] == '=')) {
echo 'Value of ', $col, $row, ' [', $formula, ']: ',
$spreadsheet->getActiveSheet()->getCell($col . $row)->getCalculatedValue() . EOL;
}
}
}
// Save
$helper->write($spreadsheet, __FILE__);