2012-12-03 39 views
2

我嘗試寫一個男女同校的在那裏我有我的數據庫的內容導出到一個CSV文件出口MySQL數據庫(與數字數據)到csv

與數字

的出口已經作品但是我導出CSV是有問題

例如我的SQL數據庫看起來像這樣

telephone number 
+639063073755 

但是在導出CSV從電話號碼的數據變成這樣

telephone number 
6.39063E+11 

的電話號碼變成指數

有沒有辦法在這裏解決這個

是我的代碼

$sql = DB::query("SELECT * FROM table 1 order by id ASC"); 
$col2 = DB::query("SELECT * FROM table2 order by col_id ASC"); 
$rp_name = DB::queryOneField('rp_name',"SELECT * FROM report_presets where rp_id=%i",$_GET['rp_id']); 
$rp_name = str_replace(" ","",$rp_name); 


$line1 .= "Telephone Number"; 


foreach($sql as $row){ 
$line2 .= 

str_replace(",","",$row[mobile_no]). "," 

."\n"; 
    } 

$data="$line1\n$line2\n"; 

header("Content-type: application/x-msdownload"); 
header("Content-Disposition: attachment; filename=".$rp_name.".csv"); 
header("Pragma: no-cache"); 
header("Expires: 0"); 
print "$header\n$data"; 

感謝

+1

它是否真的在原始CSV內容中顯示「6.39063E + 11」(在純文本編輯器中查看)?或者是你的軟件改變它(即Excel)。 – MrCode

+0

即時通訊使用excel。我想問題出在excel謝謝你的回答 – itsover9000

+0

在發送到CSV文件之前將音樂會數字轉換爲字符串,並在檢索之前將其轉換回很長 –

回答

2

如果您使用Excel查看CSV可能會出現此問題。這不是你的代碼問題。 嘗試將格式設置爲數字

+0

我想excel會自動將其轉換爲指數。現在我唯一的擔心是,如果有人不知道如何使用Excel,使用代碼 – itsover9000

+0

解決方案是強制Excel將數字視爲字符串本身而不是數字。爲此在最後放置一個$或任何字母表或類似的東西。 –

+0

嗯,我猜最後會放兩個或多個標籤。 –

1

那是因爲excel單元寬度。你可以在電話號碼前加上任何字符,如「call:989898989898」。那麼這不會是問題。

+0

這個方法可以工作,但是當旁邊有一個單詞的時候,它並不適用。謝謝你的回答 – itsover9000

+0

你真的...! ! –

+0

您可以嘗試http://phpexcel.codeplex.com/來格式化Excel表格中的數據 –