Здравствуйте хабрчаны.
Есть задача записывать зарегистрированные билеты в xlsx, для этого я использую PhpOffice\PhpSpreadsheet.
Вот то что на данный момент у меня имеется:
require_once dirname(dirname(__FILE__)).'/vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
use PhpOffice\PhpSpreadsheet\IOFactory;
try {
$inputFileName = dirname(__FILE__).'/excelFile/excelFile.xlsx';
$reader = IOFactory::createReaderForFile($inputFileName);
$reader->setReadDataOnly(TRUE);
$spreadsheet = $reader->load($inputFileName);
$worksheet = $spreadsheet->getActiveSheet();
$rows_count = get_rows_count($worksheet) + 1;
$worksheet->setCellValue('A'.$rows_count, $_POST['name'] . ' ' . $_POST['surname']);
$worksheet->setCellValue('B'.$rows_count, $_POST['birthday']);
$worksheet->setCellValue('C'.$rows_count, $_POST['phone']);
$worksheet->setCellValue('D'.$rows_count, $_POST['district']);
$worksheet->setCellValue('E'.$rows_count, $_POST['shop-cat']);
$worksheet->setCellValue('F'.$rows_count, $_POST['shop']);
$worksheet->setCellValue('G'.$rows_count, $_POST['num']);
$worksheet->setCellValue('H'.$rows_count, $_POST['date']);
$worksheet->setCellValue('I'.$rows_count, $_POST['sum']);
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="'.$inputFileName.'"');
header('Cache-Control: max-age=0');
$writer = IOFactory::createWriter($spreadsheet, 'Xlsx');
$writer->save('php://output');
echo 'success';
} catch(Exception $e) {
echo $e;
}
function get_rows_count($worksheet) {
$count = 0;
foreach($worksheet->getRowIterator() as $row) {
$count++;
}
return $count;
}
Проблема в том , что файл не сохраняется, с документацией толком не разобрался.
Подскажите как исправить ?