phpexcel для загрузки
Привет я новичок в phpexcel, и мне было интересно, есть ли какой-то способ отправить excel, который я создал для загрузки клиентов, не сохраняя его на моем сервере или удалить его сразу после его загрузки
Я пытаюсь создать " кнопку экспорта "на странице, которая даст пользователю" всплывающее окно " с excel, который он хочет, что я только что создал.
теперь после создания таблицы я делаю :
$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");
но это сохраняет его в мой сервер
спасибо
6 ответов:
вместо сохранения в файл, сохраните его в
php://output
Docs:$objWriter->save('php://output');
Это отправит его как есть в браузер.
вы хотите добавить некоторые заголовки Docs во-первых, как это часто бывает с загрузкой файлов, так что браузер знает, какой тип этого файла и как он должен быть назван (имя файла):
// 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');
сначала сделать заголовки, а затем сохранить. Для заголовков excel см. Также следующее вопрос: настройка типа mime для документа excel.
$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');
используйте этот вызов
$objWriter->save('php://output');
чтобы вывести лист XLS на страницу, на которой вы находитесь,просто убедитесь, что на странице, на которой вы находитесь, нет других выходов echo, print.
ДЛЯ ИСПОЛЬЗОВАНИЯ ДОКУМЕНТА
УСТАНОВИТЬ В $xlsName имя от XLSX с расширением. пример: $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');
ДЛЯ XLS ИСПОЛЬЗУЙТЕ
УСТАНОВИТЬ В $xlsName имя из XLS с расширением. пример: $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');
возможно, вы уже решили вашу проблему, я надеюсь, что это поможет вам.
все загруженные файлы начинаются с пустой строки, в моем случае, когда четыре пустых линии, и это создает проблему. Независимо от того, если вы работаете с
readfile();
илиsave('php://output');
, Это можно исправить с добавлениемob_start();
в начало сценария иod_end_clean();
передreadfile()
; илиsave('php://output');
.
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');