INDIRECT.php 1005 B

123456789101112131415161718192021222324252627282930313233
  1. <?php
  2. use PhpOffice\PhpSpreadsheet\NamedRange;
  3. use PhpOffice\PhpSpreadsheet\Spreadsheet;
  4. require __DIR__ . '/../../Header.php';
  5. $helper->log('Returns the cell specified by a text string.');
  6. // Create new PhpSpreadsheet object
  7. $spreadsheet = new Spreadsheet();
  8. $worksheet = $spreadsheet->getActiveSheet();
  9. $data = [
  10. [8, 9, 0],
  11. [3, 4, 5],
  12. [9, 1, 3],
  13. [4, 6, 2],
  14. ];
  15. $worksheet->fromArray($data, null, 'C1');
  16. $spreadsheet->addNamedRange(new NamedRange('NAMED_RANGE_FOR_CELL_D4', $worksheet, '="$D$4"'));
  17. $worksheet->getCell('A1')->setValue('=INDIRECT("C1")');
  18. $worksheet->getCell('A2')->setValue('=INDIRECT("D"&4)');
  19. $worksheet->getCell('A3')->setValue('=INDIRECT("E"&ROW())');
  20. $worksheet->getCell('A4')->setValue('=SUM(INDIRECT("$C$4:$E$4"))');
  21. $worksheet->getCell('A5')->setValue('=INDIRECT(NAMED_RANGE_FOR_CELL_D4)');
  22. for ($row = 1; $row <= 5; ++$row) {
  23. $cell = $worksheet->getCell("A{$row}");
  24. $helper->log("A{$row}: {$cell->getValue()} => {$cell->getCalculatedValue()}");
  25. }