2011-06-14 18 views
10

Neden bir csv dosyası çıktı almak için PHPExcel alamıyorum anlamaya çalışırken kafamı bir duvara çarptıyorum. Garip bir şekilde, bu Internet Explorer'da çalışır-csv olarak çıktılar, ancak her tarayıcıda bunu Excel'in açmayı reddettiği bir xls olarak dener.PHPExcel CSV'ye aktarılmayacak

Herhangi bir işaretçi aşırı derecede takdir edilecektir.

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.'; 

cevap

8

Sen bir beyefendi ve alim olan

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

MIME türünü değiştirmek deneyebilirsiniz. Deli sahne, sorunumu çözdün. – floppyraid

İlgili konular