Хорошо, теперь я читал примеры phpexcel. Насколько я понимаю, не должно быть никакого другого выхода на странице, чтобы создать правильный файл xls. Я думаю, что это так, потому что, когда у меня естьPHPexcel выпускает
echo "some output and my form for query";
$objPHPExcel = new PHPExcel();
$objPHPExcel->getProperties()->setCreator("Administrator");
$objPHPExcel->getProperties()->setLastModifiedBy("Administrator");
$objPHPExcel->getProperties()->setTitle("test");
$objPHPExcel->getProperties()->setSubject("test");
$objPHPExcel->getProperties()->setDescription("test");
$objPHPExcel->setActiveSheetIndex(0);
$objPHPExcel->getActiveSheet()->SetCellValue('A1', 'Hello');
$objPHPExcel->getActiveSheet()->SetCellValue('B2', 'world!');
$objPHPExcel->getActiveSheet()->SetCellValue('C1', 'Hello');
$objPHPExcel->getActiveSheet()->SetCellValue('D2', 'world!');
$objPHPExcel->getActiveSheet()->setTitle('Simple');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
// Redirect output to a client’s web browser (Excel5)
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="01simple.xls"');
header('Cache-Control: max-age=0');
// If you're serving to IE 9, then the following may be needed
header('Cache-Control: max-age=1');
// If you're serving to IE over SSL, then the following may be needed
header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past
header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); // always modified
header ('Cache-Control: cache, must-revalidate'); // HTTP/1.1
header ('Pragma: public'); // HTTP/1.0
echo"some other code";
И получить XLS, он имеет предупреждения, что doen't есть CSS ссылки там и кроме того, он ставит много текста, кроме Привет, мир !, такие как ссылки в Ехчел , Это выглядит следующим образом:
Я могу поставить все работы с XLS в другом файле PHP и получить его с помощью AJAX, но как я могу дать результаты запроса к этому файлу? Все запросы должны быть в моем основном файле, потому что я не хочу иметь несколько подключений к базе данных. Как ясно, чего я хочу. Какие-нибудь советы?
Вы правы, вы не можете быть вторите вывод, и передавать Excel файл в браузер для загрузки в том же запросе, иначе вы просто повредите файл формата Excel, чтобы MS Excel не мог его правильно прочитать. Вы генерируете ___either___ разметку HTML, ___or___ файл Excel в одном запросе, но не оба .... это не проблема PHPExcel, это проблема с http ... было бы одинаково, если бы у вас был запрос на создание файл изображения или pdf или zip-архив данных .... только один тип файла для запроса –
Спасибо за объяснение. Любые идеи, как решить проблему? –
Решение должно отправлять только один тип ответа с каждым запросом .... даже если это означает, что каждый запрос должен считывать данные из базы данных. –