PHP Spreadsheets
Mijn code werkt:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
require('vendor/autoload.php');
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('A1', 'Hello World !');
$writer = new Xlsx($spreadsheet);
$writer->save(rand().'.xlsx');
?>
require('vendor/autoload.php');
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('A1', 'Hello World !');
$writer = new Xlsx($spreadsheet);
$writer->save(rand().'.xlsx');
?>
Alleen vroeg ik me af of er een functie is waarmee ik het aangemaakte excel bestand door de browser kan laten downloaden. Nu plaatst hij het aangemaakte bestand stilletjes in mijn root folder van mijn project.
Ik kon zo gauw geen oplossing vinden.
Toevoeging op 19/07/2022 08:57:28:
Rob Doemaarwat op 18/07/2022 17:45:25:
Je hoeft 'm niet eerst als temp bestand op te slaan (en dan weer uit te serveren, en vervolgens weer op te ruimen). Nadat je de download headers hebt gegeven doe je gewoon een save naar php ://output
Jup het werkt prima nu met deze code:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
require('vendor/autoload.php');
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('A1', 'Hello World !');
$writer = new Xlsx($spreadsheet);
header('Content-Type: application/xlsx');
header('Content-Disposition: attachment; filename='.rand().'.xlsx');
header('Content-Transfer-Encoding: binary');
$writer->save('php://output');
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('A1', 'Hello World !');
$writer = new Xlsx($spreadsheet);
header('Content-Type: application/xlsx');
header('Content-Disposition: attachment; filename='.rand().'.xlsx');
header('Content-Transfer-Encoding: binary');
$writer->save('php://output');
Ik snap alleen de `php://output` niet echt. Ik heb dat verder nooit nodig gehad.
Toevoeging op 19/07/2022 11:05:46:
Is er eventueel ook nog de mogelijkheid om een .xlsx bestand te genereren zonder composer package?
Het zit namelijk zo, ik werk aan een Drupal project. Maar die staat al op een shared hosting, en het is enorm veel gedoe om een composer package in een custom module te slepen en werkend te krijgen.