phpexcel do pobrania
Witam jestem nowy w phpexcel, i zastanawiałem się, czy jest jakiś sposób, aby wysłać utworzony excel do klientów pobrać bez zapisywania go na moim serwerze lub usunąć go zaraz po pobraniu go
Próbuję utworzyć " przycisk eksportu "na stronie, która da użytkownikowi" wyskakujące okienko " z Excelem, który chce, że właśnie utworzony.
Teraz po utworzeniu tabeli robię:
$objXLS->getActiveSheet()->getColumnDimension("A")->setAutoSize(true);
$objXLS->getActiveSheet()->getColumnDimension("B")->setAutoSize(true);
$objXLS->getActiveSheet()->setTitle('Test Stats');
$objXLS->setActiveSheetIndex(0);
$objWriter = PHPExcel_IOFactory::createWriter($objXLS, 'Excel5');
$objWriter->save(__DIR__."/test1.xls");
Ale to zapisuje to na moim serwerze
Dziękuję
6 answers
Zamiast zapisać go do pliku, zapisz go do php://output
Docs:
$objWriter->save('php://output');
Spowoduje wysłanie go do przeglądarki.
Chcesz dodać kilka nagłówków Docs Po pierwsze, jak to jest powszechne w przypadku pobierania plików, więc przeglądarka wie, jakiego typu jest ten plik i jak powinien być nazwany (nazwa pliku):
// We'll be outputting an excel file
header('Content-type: application/vnd.ms-excel');
// It will be called file.xls
header('Content-Disposition: attachment; filename="file.xls"');
// Write file to the browser
$objWriter->save('php://output');
Najpierw wykonaj nagłówki, potem Zapisz. Dla nagłówków programu Excel zobacz również następujące pytanie: Ustawianie typu mime dla programu excel dokument .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:34:18
$excel = new PHPExcel();
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="your_name.xls"');
header('Cache-Control: max-age=0');
// Do your stuff here
$writer = PHPExcel_IOFactory::createWriter($excel, 'Excel5');
// This line will force the file to download
$writer->save('php://output');
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-17 18:26:46
Użyj tego wywołania
$objWriter->save('php://output');
Aby wydrukować arkusz XLS na stronie, na której się znajdujesz,upewnij się, że strona, na której się znajdujesz, nie ma innych wyjść echo, print, output.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-12-19 19:18:19
DO STOSOWANIA XLSX
Wpisz $xlsname nazwa z XLSX z rozszerzeniem. Przykład: $xlsName = ' teste.xlsx';
$objPHPExcel = new PHPExcel();
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="'.$xlsName.'"');
header('Cache-Control: max-age=0');
$objWriter->save('php://output');
DO STOSOWANIA W XLS
Wpisz $xlsname nazwa z XLS z rozszerzeniem. Przykład: $xlsName = ' teste.xls';
$objPHPExcel = new PHPExcel();
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="'.$xlsName.'"');
header('Cache-Control: max-age=0');
$objWriter->save('php://output');
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-12-10 15:12:09
Możliwe, że już rozwiązałeś swój problem, mam nadzieję, że to ci pomoże.
Wszystkie pobrane pliki zaczynają się od pustej linii, w moim przypadku cztery puste
linie, a to sprawia problem. Bez względu na to, czy pracujesz z readfile();
czy
save('php://output');
, można to naprawić dodając {[2] } w
początek skryptu i od_end_clean();
tuż przed readfile()
; lub
save('php://output');
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-09-20 18:11:13
header('Content-type: application/vnd.ms-excel');
header('Content-Disposition: attachment; filename="file.xlsx"');
header('Cache-Control: max-age=0');
header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header ('Cache-Control: cache, must-revalidate');
header ('Pragma: public');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-06-18 18:04:41