Подтвердить что ты не робот

Phpexcel для загрузки

Привет, я новичок в phpexcel, и мне было интересно, если есть какой-то способ отправить 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");

но это сохраняет его на моем сервере

Благодарю вас

4b9b3361

Ответ 1

Вместо сохранения его в файл сохраните его php://output & shy; Docs:

$objWriter->save('php://output');

Это отправит AS-IS в браузер.

Вы хотите сначала добавить заголовки & shy; 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.

Ответ 2

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

Ответ 3

Использовать этот вызов

$objWriter->save('php://output');

Чтобы вывести лист XLS на страницу, на которой вы находитесь, просто убедитесь, что страница, на которой вы находитесь, не имеет других выходов эха, печати.

Ответ 4

ДЛЯ ИСПОЛЬЗОВАНИЯ XLSX

SET IN $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

SET IN $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');

Ответ 5

Возможно, вы уже решили свою проблему, я надеюсь, что это поможет вам.

все загруженные файлы начинаются с пустой строки, в моем случае, когда четыре пустых линий, и это создает проблему. Независимо от того, работаете ли вы с readfile(); или save('php://output');. Это можно исправить добавлением ob_start(); на начало script и od_end_clean(); непосредственно перед readfile(); или save('php://output');.

Ответ 6

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