2011-06-14 40 views
10

我正在用頭撞牆,試圖弄清爲什麼我無法讓PHPExcel輸出一個csv文件。奇怪的是,這在Internet Explorer中可用 - 它以csv的形式輸出,但在其他所有瀏覽器中,我嘗試將其輸出爲Excel拒絕打開的xls。PHPExcel將不會導出爲CSV

任何指針將非常讚賞。

error_reporting(E_ALL); 
$username="blah"; 
$password="blahz"; 
$database="hollatme"; 
$sqlsrv="localhizzost"; 
date_default_timezone_set('US/Central'); 
$currenttime=date("m-d-Y"); 

require_once 'Classes/PHPExcel.php'; 
$objPHPExcel = new PHPExcel(); 
$objPHPExcel->getProperties(); 


$viewinv = mysql_connect($sqlsrv,$username,$password); 
if (!$viewinv) { die('Could not connect to SQL server. Contact administrator.'); } 
mysql_select_db($database, $viewinv) or die('Could not connect to database. Contact administrator.'); 
$query = "select somestuff from someplace;"; 
$result = mysql_query($query); 

if ($result = mysql_query($query) or die(mysql_error())) { 
    $objPHPExcel = new PHPExcel(); 
    $objPHPExcel->getActiveSheet()->setTitle('CYImport'.$currenttime.''); 

$rowNumber = 1; 
$headings = array('abunchof','differentheadings'); 
$objPHPExcel->getActiveSheet()->fromArray(array($headings),NULL,'A'.$rowNumber); 
$rowNumber++; 
while ($row = mysql_fetch_row($result)) { 
    $col = 'A'; 
    foreach($row as $cell) { 
     $objPHPExcel->getActiveSheet()->setCellValue($col.$rowNumber,$cell); 
     $col++; 
    } 
    $rowNumber++; 
} 


    $objWriter = new PHPExcel_Writer_CSV($objPHPExcel); 
$objWriter->setDelimiter(','); 
$objWriter->setEnclosure(''); 
$objWriter->setLineEnding("\r\n"); 
$objWriter->setSheetIndex(0); 
$objWriter->save('blah '.$currenttime.'.csv'); 


    header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); 
    header('Content-Disposition: attachment;filename="CY Import '.$currenttime.'"..csv"'); 
    header('Cache-Control: max-age=0'); 

    $objWriter->save('php://output'); 
    exit(); 
} 
echo 'Contact your Administrator. No data received from server.'; 

回答

8

你可以嘗試將MIME類型更改爲

header('Content-type: text/csv'); 
+3

你是一個紳士和學者。瘋狂的道具,你已經解決了我的問題。 – floppyraid 2011-06-14 22:02:44