Home / Programmazione / PHP / Sommare le colonne in PHPExcel
Mattepuffo

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!