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!
php laravel phpoffice phpspreadsheet
Commentami!