2011-04-10 28 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