2011-04-10 26 views
1

我導出腳本:HTML Table來的* .xls編碼問題

if($_POST){ 
    $file = 'FKDB_XLS'; 
    $filename = $file."_".date("Y-m-d_H-i",time()); 
    header("Content-type: application/vnd.ms-excel; charset=utf-8"); // dunno if the charset does anything for this application type.. 
    header("Content-Disposition: attachment; filename=$filename"); 
    echo stripslashes($_SESSION['item']); unset($_SESSION['item']); 
    exit; 
} 

基本上,它只是打開HTML($_SESSION['item']<table>{rows}</table>)成* .xls和允許Excel以從該數據中得出的表,因爲大多數的你可能知道。

問題是,在Excel中打開時,一切正常,除非...所有值都寫錯了,所有Ä, ņÅ等等,而不是'Â',再次。

我該怎麼做才能防止這種情況?

在此先感謝!

回答

4

如果您正在編寫用於導入到excel的HTML標記,那麼您需要確保您在HTML標頭中設置了適當的元標記。在Content類型中指定charset完全沒有任何效果。如果你只是寫一個表格,然後把它包裝在HTML/HEAD/BODY等中,這樣你就可以設置HEAD元標籤。

我還是不明白爲什麼人們寫HTML,並給文件一個xls擴展名,這很容易創建一個真正的Excel文件!

+1

介意分享信息? – jolt 2011-04-10 21:55:17

+0

@Tom - 我的意思是,有大量的PHP庫可以創建真正的BIFF .xls文件或Office Open XML .xlsx文件,而無需簡單地編寫csv或html文件併爲其擴展.xls。除了PHPExcel(http://www.phpexcel.net),這是我自己的庫,還有其他選項列出在這個SO問題的答案http://stackoverflow.com/questions/3930975/alternative-for-php -excel – 2011-04-10 22:04:45

+0

謝謝,我使用\ t和\ n來創建xls文件,但是我在編碼方面遇到了很多問題,表格更加複雜並且工作得更好。再次感謝馬克。 – 2013-09-02 16:57:47

3

添加到您的HTML表格,讓Excel將讀取它的飛行:關於「容易地創建一個真正的Excel文件」

<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
</head> 
+1

應該在「內容類型」周圍引用引號。 – 2012-11-12 20:36:38