Modificare un file excel in Laravel

Mattepuffo's logo
Modificare un file excel in Laravel

Modificare un file excel in Laravel

In questo articolo vediamo come modificare un file excel esistente in Laravel.

Do per scontato che abbiate già installato la libreria PhpSpreadsheet.

Io ho messo tutto dentro ad un controller:

namespace App\Http\Controllers;

use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;

class TestController extends Controller {

  public function index() {
    try {
      $file = public_path("file.xlsx");
      $spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($file);

      $sheet = $spreadsheet->getSheetByName('SHEDA1');
      $sheet->setCellValue('A1', 100);

      $writer = new Xlsx($spreadsheet);
      header('Content-Type: application/vnd.ms-excel');
      header('Content-Disposition: attachment;filename="file.xlsx"');
      header('Cache-Control: max-age=0');
      $writer->save('php://output');
    } catch (Exception $ex) {
      echo $ex->getMessage();
    }
  }

}

Come vedete eseguo il caricamento del file con IOFactory::load.

Dopo di che ho selezionato il foglio che mi interessa con il nome (ma potete anche fare con gli indici).

Ho valorizzato una cella, che verrà quindi sovrascritta con il nostro valore.

Infine lo mando in output per lo scarico.

Enjoy!


Condividi

Commentami!