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ę

Author: pnuts, 2011-12-19

6 answers

Zamiast zapisać go do pliku, zapisz go do php://outputDocs:

$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 .

 157
Author: hakre,
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');
 21
Author: matino,
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.

 5
Author: JoshStrange,
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');
 5
Author: Rogerio de Moraes,
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');.

 4
Author: Efren Gutierrez Sosa,
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');
 3
Author: harsimer,
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