Как правильно сформировать и выгрузить Excel Отчет на PHP (Библиотека PHPExcel)

347
29 июня 2017, 04:17

Доброго времени суток, интересует решение проблемы с помощью библиотеки ExcelPHP. С помощью скрипта ниже в Excel файл выгружается нужная информация и сам файл сохраняется, но это только если я запускаю этот скрипт непосредственно со странице, где скрипт написан. Мне же нужно отправить запрос со страницы с формой на страницу со скриптом PHPExcel и получать выгруженный Excel отчет Мой вариант пишет что запрос успешен, но файл не выгружает. Собственно, так выглядит скрипт:

include_once('connect_db/config.php');
  if($db == false) {
    echo 'Baaaad data base(';
}
else {
$result = $db->query("SELECT * FROM `excel_base`");

    $i = 0;
while($row = $result->fetch()) {
    $excelList[$i]['id_lead'] = $row['id_lead'];
    $excelList[$i]['name'] = $row['name'];
     $excelList[$i]['responsible'] = $row['responsible'];
    $excelList[$i]['budget'] = $row['budget'];
    $excelList[$i]['date_close'] = $row['date_close'];
    $excelList[$i]['attached_contact'] = $row['attached_contact'];
    $excelList[$i]['phone'] = $row['phone'];
    $excelList[$i]['email'] = $row['email'];
    $excelList[$i]['company'] = $row['company'];
        $i++;
    }   
    //Массив с заголовками
    $title = ['ID Сделки', 'Имя Сделки', 'Ответственный', 'Бюджет', 'Дата Закрытия сделки', 'Имя Прикрепленного контакта', 
        'Телефон контакта', 'Email контакта', 'Компания контакта (если есть)'];
    $col = range('A', 'Z');
    $row = 1;
require_once('PHPExcel-1.8/Classes/PHPExcel.php'); // Подключаем библиотеку PHPExcel
  // Подключение класса для вывода данных в формате Excel
require_once("PHPExcel-1.8/Classes/PHPExcel/Writer/Excel5.php");
// Создание объекта класса PHPExcel
$myXls = new PHPExcel();
// Указание на активный лист
$myXls->setActiveSheetIndex(0);
// Получение активного листа
$mySheet = $myXls->getActiveSheet();
// Указание названия листа книги
$mySheet->setTitle("Новый лист");

// Указываем значения для отдельных ячеек
for($i = 0; $i < count($title); $i++) {
            $mySheet->setCellValue($col[$i]. $row, $title[$i]);
        }
      $i = 0;   
 foreach ($excelList as $value) {
     ++$row;
     $i = 0;
     $mySheet->setCellValue($col[$i]. $row, $value['id_lead']);
     $mySheet->setCellValue($col[++$i]. $row, $value['name']);
     $mySheet->setCellValue($col[++$i]. $row, $value['responsible']);
     $mySheet->setCellValue($col[++$i]. $row, $value['budget']);
     $mySheet->setCellValue($col[++$i]. $row, $value['date_close']);
     $mySheet->setCellValue($col[++$i]. $row, $value['attached_contact']);
     $mySheet->setCellValue($col[++$i]. $row, $value['phone']);
     $mySheet->setCellValue($col[++$i]. $row, $value['email']);
     $mySheet->setCellValue($col[++$i]. $row, $value['company']);

 }        
//HTTP-заголовки
header ("Expires: Mon, 1 Apr 1974 05:00:00 GMT");
header ("Last-Modified: " . gmdate("D,d M Y H:i:s") . " GMT");
header ("Cache-Control: no-cache, must-revalidate");
header ("Pragma: no-cache");
header ("Content-type: application/vnd.ms-excel");
header ("Content-Disposition: attachment; filename=myFile.xls");
// Вывод файла
$objWriter = new PHPExcel_Writer_Excel5($myXls);
$objWriter->save("php://output");
}
READ ALSO
php ввод/вывод json

php ввод/вывод json

Столкнулся со следующей проблемойОтправляю на сервер строку json через $post

388
Вывод записей из БД как во ВКонтакте

Вывод записей из БД как во ВКонтакте

Необходимо выбрать все строки таблицы MySQL, начиная с последней (максимальный id) и выводить по 15 записей, и еще необходимо создать кнопку, при...

273
Таймер каждые 24 часа

Таймер каждые 24 часа

После того как таймер доходит до 00:00:00, он делает 00:00:0-1, а потом, вместо того чтоб написать 23:59:59, он пишет 24:19:06Откуда он берет 19 минут

206
Получить данные Google Analytics

Получить данные Google Analytics

Как можно получить данные по сайту из Google Analytics без использования json-ключа и огромной библиотеки Google, а, например, при помощи функции file_get_contents(),...

178