привет, я новичок в 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");
но это сохраняет его на моем сервере
благодарю вас
header
строк и->save()
действия. Вам нужно выбрать между а) отображением страницы или б) предложением загрузки. Оба не работают с одним скриптом легко. Однако вы можете создать один сценарий для загрузки и один для страницы, и когда сценарий страницы будет выполнен, перенаправить на сценарий загрузки, который заставит браузер предлагать диалоговое окно сохранения как.Content-Length
заголовок при использованииphp://output
?$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');
источник
MIME
Тип наapplication/vnd.openxmlformats-officedocument.presentationml.presentation
, он загружает файл в мою систему, но говорит этоFile can't be opened
. Файл работал, когда код записывал его на сервер.ДЛЯ ИСПОЛЬЗОВАНИЯ 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');
источник
MIME
Тип наapplication/vnd.openxmlformats-officedocument.presentationml.presentation
, он загружает файл в мою систему, но говорит этоFile can't be opened
. Файл работал, когда код записывал его на сервер.Используйте этот звонок
$objWriter->save('php://output');
Чтобы вывести лист XLS на страницу, на которой вы находитесь, просто убедитесь, что на странице, на которой вы находитесь, нет других выводов эха, печати и вывода.
источник
MIME
Тип наapplication/vnd.openxmlformats-officedocument.presentationml.presentation
, он загружает файл в мою систему, но говорит этоFile can't be opened
. Файл работал, когда код записывал его на сервер.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');
источник
MIME
Тип наapplication/vnd.openxmlformats-officedocument.presentationml.presentation
, он загружает файл в мою систему, но говорит этоFile can't be opened
. Файл работал, когда код записывал его на сервер.возможно, вы уже решили свою проблему, в любом случае, я надеюсь, что это вам поможет.
все загруженные файлы начинаются с пустой строки, в моем случае с четырех пустых строк, и это создает проблему. Независимо от того, работаете ли вы с
readfile();
илиsave('php://output');
, это можно исправить, добавивob_start();
в начале скрипта иob_end_clean();
непосредственно передreadfile()
; илиsave('php://output');
.источник
ob_end_clean()
нетod_end_clean()