Sommare le colonne in PHPExcel

Sommare le colonne in PHPExcel

PHPExcel supporta la creazione di formule direttamente in fase di creazione del file.

L'unica cosa a cui bisogna stare attenti, è scrivere la giusta formula; le formule possono cambiare a seconda se si usa MS Office o LibreOffice ad esempio.

Comunque, in questo caso, vedremo la semplice SUM, che è standard.

Quindi ad esempio:

$xls->getActiveSheet()->setCellValue('A10', '=SUM('A1:A9')');

Questa riga dovrebbe stampare nella A10 la somma delle righe A1:A9.

Se invece abbiamo un range di colonne / righe da sommare, possiamo sfruttare la funzione range in questo modo:

$lastRow = $xls->getActiveSheet()->getHighestRow();
$lastRow1 = $lastRow + 1;
foreach (range('A', $xls->getActiveSheet()->getHighestDataColumn()) as $col) {
    $xls->getActiveSheet()->setCellValue($col . $lastRow1, '=SUM(' . $col . '1:' . $col . $lastRow . ')');
}

Prima identifichiamo qual'è l'ultima con un valore, in modo da scrivere in quella subito sotto ($lastRow1).

Poi eseguiamo un cliclo partendo dalla colonna A fino all'ultima colonna trovata valorizzata.

Per ogni colonna facciamo la somma, e scriviamo il risultato nella riga identificata prima, all'altezza della colonna corrente.

Probabilmente è da adattare alle vostre esigenze, ma può essere un buon punto di partenza.

Enjoy!