2014-02-12 4 views
0

Я пытаюсь распечатать свой SQL-запрос, который я сгенерировал в PHP, в файл Excel с помощью PHPExcel. Я не знаю, где я ошибся, но каждый раз, когда я запускаю свой код, я получаю пустую страницу.PHPExcel не работает

Это мой код:

<html> 
<body> 

<?php 
mysql_connect("$host", $user, $password) or die("Couldn't connect to SQL Server on  $myServer"); 
mysql_select_db("$database") or die("Couldn't open database $myDB"); 

if (mysqli_connect_errno()) 
{ 
echo "Failed to connect to MySQL: " . mysql_connect_error(); 
} 
require_once("includes/session.php"); 
require_once("includes/connection.php"); 
require_once("includes/functions.php"); 

error_reporting(E_ALL); 
ini_set('display_errors', TRUE); 
ini_set('display_startup_errors', TRUE); 
date_default_timezone_set('Europe/London'); 

define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : ' 
'); 

/** Include PHPExcel */ 
require_once '/Classes/PHPExcel.php'; 


// Create new PHPExcel object 
$objPHPExcel = new PHPExcel(); 

$filter = $_SESSION['registry']; 
$query = "SELECT sales.invoiceNo, invoiceDate, dueDate, customerID, customerName, dateTrans, postDate, description, grossSale, vat, netSale, quantity, branch, despatchNote FROM sales2012 sales WHERE sales.invoiceNo IN (SELECT invoiceNo FROM sales2012 GROUP BY invoiceNo HAVING COUNT(invoiceNo)>1)"; 
$result_set = mysql_query($query); 
     confirm_query($result_set); 

// Add some data 
$objPHPExcel->setActiveSheetIndex(0) 
     ->setCellValue('A1', 'Invoice No') 
     ->setCellValue('B1', 'Invoice Date') 
     ->setCellValue('C1', 'Due Date') 
     ->setCellValue('D1', 'Customer ID') 
     ->setCellValue('E1', 'Customer Name') 
     ->setCellValue('F1', 'Transaction Date') 
     ->setCellValue('G1', 'Post Date') 
     ->setCellValue('H1', 'Description') 
     ->setCellValue('I1', 'Gross Sale') 
     ->setCellValue('J1', 'VAT') 
     ->setCellValue('K1', 'Net Sale') 
     ->setCellValue('L1', 'Quantity') 
     ->setCellValue('M1', 'Branch') 
     ->setCellValue('N1', 'Despatch Note'); 


     $row = 2; 
     while ($data = mysql_fetch_array($result_set)) { 
     $objPHPExcel->setActiveSheetIndex(0) 
     ->setCellValue('A' . $row, $data['invoiceNo']) 
     ->setCellValue('B'. $row, $data['invoiceDate']) 
     ->setCellValue('C'. $row, $data['dueDate']) 
     ->setCellValue('D'. $row, $data['customerID']) 
     ->setCellValue('E'. $row, $data['customerName']) 
     ->setCellValue('F'. $row, $data['dateTrans']) 
     ->setCellValue('G'. $row, $data['postDate']) 
     ->setCellValue('H'. $row, $data['description']) 
     ->setCellValue('I'. $row, $data['grossSale']) 
     ->setCellValue('J'. $row, $data['vat']) 
     ->setCellValue('K'. $row, $data['netSale']) 
     ->setCellValue('L'. $row, $data['quantity']) 
     ->setCellValue('M'. $row, $data['branch']) 
     ->setCellValue('N'. $row, $data['descriptionNote']); 
     $row++; 
     } 

// Set active sheet index to the first sheet, so Excel opens this as the first sheet 
$objPHPExcel->setActiveSheetIndex(0); 


$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); 
$objWriter->save(str_replace('__FILE__,'/desktop/filename.xls',__FILE__)); 

?> 
</body> 
</html> 

Любая помощь будет высоко ценится! Благодаря

+0

Добавить 'error_reporting (E_STRICT | E_ALL)' в сверху вашего PHP, чтобы увидеть какие-либо ошибки, которые могут быть. Игнорируй меня ... Просто видел, что у тебя уже есть это. – superphonic

+0

Я думаю, что пустая страница здесь верна. В этом файле ничего не выводится на экран. Он сохраняет файл .xls на рабочем столе – superphonic

+0

Когда я проверяю рабочий стол, у меня нет файла .xls – goroved

ответ

0

может быть bucause у вас есть включают: библио Excel2007

require_once ("Классы/PHPExcel/Writer/Excel2007.php");

и при сохранении документа в Excel2007 РАСШИРЕНИЯ является .xlsx

$ objWriter-> Save (str_replace (»FILE '/ настольные/filename.xls', FILE));

это может быть вариантом

$ objWriter = PHPExcel_IOFactory :: createWriter ($ objPHPExcel, 'Excel2007');

$ objWriter-> Сохранить ('PHP: // выход')

+0

Спасибо за предложение, но оно не сработало :( – goroved

+0

@goroved - когда что-то «не работает», это всегда полезно сказать, что вы подразумеваете под «не работает». Отображает ли оно какие-либо сообщения об ошибках? Что-то пишут в PHP или журналы веб-серверов? Это вас лижет электрошоком? Он пишет файл, содержащий недопустимые данные? –

0
$objWriter->save(
    str_replace('__FILE__,'/desktop/filename.xls',__FILE__) 
); 

Ваш str_replace() не действует синтаксис PHP, я удивлен, эта ошибка не регистрируется где-то ... несогласованные цитаты, так как любой достойный редактор подсветки синтаксиса сказал бы вам

И глупо, вам даже не нужно str_replace. PHPExcel Writer сохранить() метод ожидает строковое значение в качестве имени файла, это не важно, как формируется эта строка, так что просто передать ему строку

$objWriter->save('/desktop/filename.xls'); 
Смежные вопросы