siva sandeep
siva sandeep

Reputation: 607

Creating Excel file using PhpSpreadsheet with default data using Laravel 5.5

I am trying to download excel file with pre-populated data using PhpSpreadsheet in laravel. But I am got empty file downloaded.Here`s my code.

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

$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('B1','testing');

$writer = new Xlsx($spreadsheet);
$filename = 'tessa';

header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="'. $filename .'.Xlsx"');
header('Cache-Control: max-age=0');

$writer->save($filename);

I tried dd($sheet) Here how it looks,it contains my data;

enter image description here

The file downloaded but empty file.Can any one tell me how to solve the issue?

Upvotes: 3

Views: 5934

Answers (2)

Emad ElShafie
Emad ElShafie

Reputation: 11

You need to change

$writer->save($filename);

to:

$writer->save('php://output');

Upvotes: 0

Chukwuemeka Inya
Chukwuemeka Inya

Reputation: 2671

You don't really need to set those headers. But if you must, edit filename to:

$filename = 'tessa.xlsx';

Upvotes: 2

Related Questions