2013-03-30 73 views
1

我想在Excel中导出mysql数据库表格,即在XLS格式中,我尝试了PHP代码获取excel格式的结果,但由于某种原因或某些缺失的术语我无法完成,这是我的PHP代码:获取PHPExcel错误

<?php 

// connection with the database 
$dbcon = mysql_connect("127.0.0.1","root","mim"); 

if($dbcon) 
{ 
    mysql_select_db("mydb", $dbcon); 
} 
else 
{ 
    die('error connecting to the database'); 
} 

// require the PHPExcel file 
require 'Classes/PHPExcel.php'; 

$query = " 
    SELECT name 
    FROM usermaster 
    WHERE date between '2013-01-01' AND '2013-03-01' 
"; 
$result = mysql_query($query) or die(mysql_error());   

// Create a new PHPExcel object 
$objPHPExcel = new PHPExcel(); 
$objPHPExcel->getActiveSheet()->setTitle('Name'); 

// Loop through the result set 
$row = 1; 
while ($row = mysql_fetch_row($result)) { 
    $col = 0; 
    foreach($row as $name) { 
     $objPHPExcel->getActiveSheet()->setCellValue($col.$row,$name); 
     $col++; 
    } 
    $row++; 
} 

// 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(); 

?> 

获得一个空白页......任何形式的帮助,将不胜感激,也可以接受......

+0

请学会正确的缩进你对别人造成你的代码之前。 – Hubro

+1

请参阅http://phpexcel.codeplex.com/discussions/250120 – worenga

+0

也许你的环境配置有问题;看到这个其他堆栈http://stackoverflow.com/questions/6201176/phpexcel-objwriter-save-fails –

回答

0

setCellValue()预计Excel单元格地址(例如A1,B2,C3,其中列ID是字母ID,后面是行号)作为第一个参数。您正在使用数字(从0开始)作为您的列ID。

相反初始列ID设置为0,将其设置为“A”:

$row = 1; 
while ($row = mysql_fetch_row($result)) { 
    $col = 'A'; 
    foreach($row as $name) { 
     $objPHPExcel->getActiveSheet()->setCellValue($col.$row,$name); 
     $col++; 
    } 
    $row++; 
} 
+0

尝试ths,但仍然没有得到结果......... –

+0

好吧,从一些基本的调试开始......保存到文件而不是php://输出,并在代码中放置一些echo语句以查看什么值写入哪个单元 –

+0

嗨马克我提到你的答案和评论,同时通过参考不同的问题对你的知识有所了解,请帮助我...... –