//开始导出
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 格式(字段应用双引号括起)包装起来
测试了一下,不必替换回车换行
只需将输出串用双引号包裹起来就可以了
可以了谢谢。