/var/www/vhosts/ihelp.ro/httpdocs/src/Controller/Component
Edit: /var/www/vhosts/ihelp.ro/httpdocs/src/Controller/Component/SpreadsheetComponent.php (4026B)
isCli()) {
$helper->log(__('This example should only be run from a Web Browser') . PHP_EOL);
return;
}
// Create new Spreadsheet object
$spreadsheet = new Spreadsheet();
// Set document properties
$spreadsheet->getProperties()->setCreator($author)
->setLastModifiedBy($author)
->setTitle($title . ' :: ' . $category)
->setSubject($category)
->setDescription("Entries from " . $title . " describing {$category}.")
->setKeywords($title . " " . $category)
->setCategory($category);
$line = 1;
if (empty($data)) {
$spreadsheet->setCellValue('A' . $line++, __('No results were returned by the query'));
} else {
// Add headers
$spreadsheet->getActiveSheet()->fromArray(array_keys($data[0]), NULL, 'A' . $line++);
// Add content
foreach ($data as $key => $value) {
// Write the data into the new spreadsheet starting at cell A1
$spreadsheet->getActiveSheet()->fromArray($value, NULL, 'A' . $line++);
}
}
// Print header && footer
$spreadsheet->getActiveSheet()->getHeaderFooter()
->setOddHeader('&C&H' . __('Please treat this document as confidential!'));
$spreadsheet->getActiveSheet()->getHeaderFooter()
->setOddFooter('&L&B' . $spreadsheet->getProperties()->getTitle() . '&R' . __('Page {0} of {1}', ['&P', '&N']));
// Rename worksheet
$spreadsheet->getActiveSheet()->setTitle($title . ' - ' . $category);
// Set ORIENTATION_LANDSCAPE for printing. Default is ORIENTATION_PORTRAIT
$spreadsheet->getActiveSheet()->getPageSetup()->setOrientation(\PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::ORIENTATION_LANDSCAPE);
// Set active sheet index to the first sheet, so Excel opens this as the first sheet
$spreadsheet->setActiveSheetIndex(0);
$writer = IOFactory::createWriter($spreadsheet, 'Xlsx');
if ($save != 'save') {
$filename = \Cake\Utility\Inflector::dasherize(strtolower($title) . '-' . strtolower($category) . '-' . date('Y-m-d_H-i-s')) . ".xlsx";
// Redirect output to a client’s web browser (Xlsx)
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="' . $filename . '"');
header('Cache-Control: max-age=0');
// If you're serving to IE 9, then the following may be needed
header('Cache-Control: max-age=1');
// If you're serving to IE over SSL, then the following may be needed
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT'); // always modified
header('Cache-Control: cache, must-revalidate'); // HTTP/1.1
header('Pragma: public'); // HTTP/1.0
$writer->save('php://output');
} else {
$filename = \Cake\Utility\Inflector::dasherize(strtolower($title) . '-' . strtolower($category) . '-' . $options['dateFrom'] . '_' . $options['dateUntil'] . '-' . rand(1, 99999)) . ".xlsx";
$path = ROOT . DS . 'files' . DS . 'Donations' . DS . $filename;
$writer->save($path);
}
exit;
}
}