Проблема с PHPExcel

У меня есть простая таблица:

 CREATE TABLE, ЕСЛИ НЕ СУЩЕСТВУЕТ `users` (
   `id` int (10) NOT NULL AUTO_INCREMENT,
   `email` varchar (225) NOT NULL DEFAULT '',
   `date` datetime DEFAULT NULL,
   `status` int (1) NOT NULL DEFAULT '1',
   ПЕРВИЧНЫЙ КЛЮЧ (`id`)
 ) ENGINE = MyISAM;

Я использую PHPExcel для экспорта таблицы в формате XLS. Я написал простые строки PHP:

$dbhost = "localhost"; $dbuser = "root"; $dbpass = ""; $dbname = "svn_register"; mysql_connect($dbhost,$dbuser,$dbpass); mysql_select_db($dbname); // require the PHPExcel file require 'Classes/PHPExcel.php'; // simple query $query = "SELECT * FROM users ORDER by id DESC"; if ($result = mysql_query($query) or die(mysql_error())) { // Create a new PHPExcel object $objPHPExcel = new PHPExcel(); $objPHPExcel->getActiveSheet()->setTitle('List of Cities'); // Loop through the result set $rowNumber = 1; while ($row = mysql_fetch_row($result)) { $col = ''; foreach($row as $cell) { $objPHPExcel->getActiveSheet()->setCellValue($col.$rowNumber,$cell); $col++; } $rowNumber++; } // Save as an Excel BIFF (xls) file $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); header('Content-Type: application/vnd.ms-excel'); header('Content-Disposition: attachment;filename="myFile.xls"'); header('Cache-Control: max-age=0'); $objWriter->save('php://output'); exit(); } echo 'a problem has occurred... no data retrieved from the database'; 

Я получаю пустую страницу.

Я сказал это несколько раз, когда вы изначально подняли этот вопрос … этот скрипт создаст пустую страницу.

 $objWriter->save('CityList.xls'); 

записывает книгу Excel в файл с именем CityList.xls в файловой системе сервера. Он НЕ отображает ничего на экране … поэтому экран будет пустым.

Посмотрите на сервер. Найдите файл CityList.xls. Откройте этот файл в MS Excel.

РЕДАКТИРОВАТЬ

В качестве альтернативы, установите соответствующие заголовки и сохраните на выходе php: //

 // connection with the database $dbhost = "localhost"; $dbuser = "root"; $dbpass = ""; $dbname = "database"; mysql_connect($dbhost,$dbuser,$dbpass); mysql_select_db($dbname); // require the PHPExcel file require 'Classes/PHPExcel.php'; // simple query $query = "SELECT id FROM users ORDER by id DESC"; if ($result = mysql_query($query) or die(mysql_error())) { // Create a new PHPExcel object $objPHPExcel = new PHPExcel(); $objPHPExcel->getActiveSheet()->setTitle('List of Cities'); // Loop through the result set $rowNumber = 1; while ($row = mysql_fetch_row($result)) { $col = 'A'; foreach($row as $cell) { $objPHPExcel->getActiveSheet()->setCellValue($col.$rowNumber,$cell); $col++; } $rowNumber++; } // Save as an Excel BIFF (xls) file $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); header('Content-Type: application/vnd.ms-excel'); header('Content-Disposition: attachment;filename="myFile.xls"'); header('Cache-Control: max-age=0'); $objWriter->save('php://output'); exit(); } echo 'a problem has occurred... no data retrieved from the database'; 

EDIT 2

Альтернатива:

 // Loop through the result set $rowNumber = 1; while ($row = mysql_fetch_row($result)) { $objPHPExcel->getActiveSheet()->fromArray(array($row),NULL,'A'.$rowNumber++); } 

также следует исправить эту ошибку

EDIT # 3

Чтобы добавить строку заголовка.

 $rowNumber = 1; $headings = array('Name','EMail','Phone'); $objPHPExcel->getActiveSheet()->fromArray(array($headings),NULL,'A'.$rowNumber); $rowNumber++ // Loop through the result set while ($row = mysql_fetch_row($result)) { $col = 'A'; foreach($row as $cell) { $objPHPExcel->getActiveSheet()->setCellValue($col.$rowNumber,$cell); $col++; } $rowNumber++; }