2014-04-23 133 views
0

試圖將mysql查詢的結果寫入excel文件。我目前正在使用數據透視查詢在Web瀏覽器中顯示預覽結果,但是我想知道是否有人使用庫將查詢轉換爲服務器上的Excel文件?將mysql查詢轉換爲excel文件

+0

爲什麼要查詢excel?它應該是查詢的結果excel文件,我是嗎? – Rorschach

+2

http://stackoverflow.com/a/5715208/1693085 –

+1

你需要輸出一個Excel文件還是隻想在Excel中使用數據?您可以輸出分隔的東西,然後將其導入到Excel中,如果它是供個人使用的話。 –

回答

1

如果你需要更多的格式不僅僅是CSV使用PHPexcel它具有良好的文檔和示例。我已經使用了它幾次,它會帶來不錯的結果。

+0

這正是我正在尋找的,謝謝。 – afinom

0

我用了一段時間的慣例是取出查詢的輸出並將其轉換爲.CSV文件。在大多數安裝了Excel的計算機上,CSV文件將由Excel打開。此外,您不必擔心任何控制字符或Excel中可能難以再現的其他Microsoft字符。

我會有類似這樣的代碼:

$output=''; //USED TO STORE ALL THE OUTPUT 

$sql = "SELECT * FROM (table)"; 
$result = mysql_query($sql); 
$count = mysql_num_rows($result); 

for($s=0;$s<$sql;$s++) 
{ 
    mysql_data_seek($s); 
    $answer = mysql_fetch_array($result); 

    $output .= $answer['field_1'] . ','; 
    $output .= $answer['field_2'] . ','; 
    $output .= $answer['field_3'] . ','; 
    .... 
    $output .= chr(10) . chr(13); //INSERT NEW LINE/CARRIAGE RETURN 
}//END FOR S < SQL 

file_put_contents('myfile.csv', $output); 

讓我知道如果您有任何問題! (您可能需要修正這裏和那裏的輕微語法錯誤,我沒有跑這個確切的代碼)

(我已經使用舊的Mysql方法在這裏,但你可能需要更新爲任何數據庫驅動程序/庫你正在使用)。

0

只需將分隔的輸出保存到一個變量,然後下載它就像這樣。

$filename = "file_name".".csv"; 
header('Content-type: application/csv'); 
header('Content-Disposition: attachment; filename='.$filename); 
echo $output; 
exit;