Try using the method I wrote.
public function generateExcelDownload($file = '/public/excel/')
{
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$styleArray = [
'borders' => [
'allBorders' => [
'borderStyle' => Border::BORDER_THIN,
],
],
'alignment' => [
'wrapText' => true,
],
'font' => [
//'size' => 14,
],
];
$this->excelHeaderGenerate($sheet, $styleArray);
$this->excelBodyGenerate($spreadsheet, $styleArray);
$writer = new Xlsx($spreadsheet);
$writer->setPreCalculateFormulas(false);
$file_dir = dirname(__DIR__, 3).$file;
if (!file_exists($file_dir)) {
if (!mkdir($file_dir, 0777, true) && !is_dir($file)) {
throw new \RuntimeException(sprintf('Directory "%s" was not created', $file));
}
}
$file = $file_dir.date('Y-m-d_H-i-s').'.xlsx';
$writer->save($file);
return $file;
}