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 75

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');