2015-11-04 70 views
0

我正在使用phpexcel將某些數據庫值導出爲ex​​cel。當我回聲的價值一切工作正常,但是當我想出口價值excel例如The Westminster Terrace,Yau Lai Rd
 Hong Kong它只是在Excel中打印相同,而如果我回顯它打印The Westminster Terrace, Yau Lai Rd , Hong Kong。 數據庫具有utf8_general_ci歸類。我使用了下面的代碼。Php Excel編碼問題

foreach ($data as $question) { 
    $c = $c + 1; 
    //echo $question['their_answer']; 
    $objPHPExcel -> setActiveSheetIndex(0) -> setCellValue($x . $d, $question['their_answer']); 
$x++; 
} 

如何在excel列中打印相同的回顯任何想法?
感謝
Somdeb

+0

' '和' '是實體,我認爲控制字符。當你說「當我回應價值一切工作正常」,你在瀏覽器?如果是的話,瀏覽器正在渲染這些。看看源代碼,它會是一樣的。 – chris85

+0

yes在瀏覽器中,但excel中的輸出不同 –

+2

@SomdebMukherjee因爲瀏覽器可以解釋HTML,並且它們是HTML實體。 Excel不能。 –

回答

2

這些字符的HTML實體。嘗試html_entity_decode,像這樣:

foreach ($data as $question) { 
    $c = $c + 1; 
    $objPHPExcel->setActiveSheetIndex(0)->setCellValue($x . $d, html_entity_decode($question['their_answer'])); 
    $x++; 
} 
+0

感謝它工作哇!!!!!!! –

2

這是因爲Excel是不是HTML和
是HTML實體(實際上編碼回車和換行符)......他們無非是文字字符以上在一個字符串到Excel。你需要將它們轉換爲使用的東西他們的UTF-8字符像html_entity_decode()

$string = 'The Westminster Terrace,Yau Lai Rd
 Hong Kong'; 
$string = html_entity_decode($string, ENT_NOQUOTES, 'UTF-8'); 

你可能也想設置單元格包裹,並且autoheight該行處理這些返回字符以及

0

也許您遇到與實體有關的問題,例如:

嘗試解碼使用html_entity_decode在運行你的代碼是這樣的實體:

foreach ($data as $question) { 
    $c = $c + 1; 
    //echo $question['their_answer']; 
    $objPHPExcel -> setActiveSheetIndex(0)->setCellValue($x . $d, html_entity_decode($question['their_answer'])); 
$x++; 
} 

其原因,可能是你的數據庫已經保存的事實與實體的數據編碼,所以它會正確打印在瀏覽器中當你echo但不會打印在excel文件中(因爲他不明白那些值是什麼)

讓我知道它是否有效。