//开始导出  
 header(content-type:application/vnd.ms-excel);  
 header(content-disposition:attachment;filename=xueyuan_list_data.xls);
echo mb_convert_encoding('备注','gbk','utf-8').\t;
$xuhao = 1;  
 foreach($arr_xueyuan_list as $arr)  
 {  
 echo \n;  
 echo $xuhao . \t;  
 echo mb_convert_encoding($arr['beizhu'],'gbk','utf-8') .\t;  
 $xuhao = $xuhao + 1;  
 }
由于数据beizhu在提交时是textarea,所以beizhu这个字段中会含有换行符,导出时,一旦内容里有换行的,那么第二行就会显示到excel表的另一行去,但我想要的是beizhu这个字段里的所有内容只显示在excel表里的“备注”这一格里,请问应该怎么办?
回复讨论(解决方案)   $beizhu = mb_convert_encoding($arr['beizhu'],'gbk','utf-8');$beizhu = '' . preg_replace((/[\r\n]+/, \n, $beizhu) . '';echo $beizhu . \t;
即将 回车换行符都换成换行符(linux 的文档不需要,但考虑到文档可能来自 windows 或者 mac,做一下没坏处)  
 然后用标准的 csv 格式(字段应用双引号括起)包装起来 
   测试了一下,不必替换回车换行  
 只需将输出串用双引号包裹起来就可以了 
   可以了谢谢。
   
 
   