发新话题
打印

[蓝冰原创]PHP生成EXCEL中单元格内换行的解决办法

[蓝冰原创]PHP生成EXCEL中单元格内换行的解决办法

平常我们用PHP生成EXCEL大都是如下代码:
免费内容:

ob_start();
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:filename=report.xls");

echo "公司名称\t公司地址\t公司电话";
echo "西部硅谷\t西安市雁塔中路段26号\t029-85512287";
echo "西部硅谷\t西安市雁塔中路段26号\t029-85512287";
echo "西部硅谷\t西安市雁塔中路段26号\t029-85512287";
但如果要在单元格内换行的话,可能不太好弄,一般换行都是\r\n或chr(10).chr(13),如果直接把\r\n或chr(10).chr(13)插入到字符串中,并不是在当前单元格内换行,而是另起一行了,这并不是我们想要的效果,如下是解决办法:
免费内容:

ob_start();
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:filename=report.xls");

echo "公司名称\t公司地址\t公司电话\n";
echo "西部硅谷\t\"西安市雁塔路\r\n中段26号\"\t029-85512287";
echo "西部硅谷\t西安市雁塔路中段26号\t029-85512287";
echo "西部硅谷\t西安市雁塔路中段26号\t029-85512287";
现在看看第二行的效果,单元格内的文字已经换行了!

我们是用双引号把要换行的文字引了起来,这样就可以在文字中换行了。但如果我们的文字中有双引号,那我们怎么才能把双引号和上面引用文字的双引号不起冲突呢?这当然是有办法的,我们要对文字内的双引号进行处理,处理办法如下:
免费内容:

ob_start();
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:filename=report.xls");

echo "\"\"\"我被双引号括引来了\"\"\r\n我换行了\"\t我没有被引号括起来";
双引号(")要处理成两个双引号(""),在PHP中要单独对双引号转义,PHP中的转义符是(\)。引号比较多,但都有意义的,不能少一个。
网络无限,生活无限

TOP

牛啊 羡慕啊

欢迎个人 商家注册 泾渭论坛
发报价贴 技术贴 http://xy918bbs.cn
硅谷论坛下面有友情链接!

TOP

发新话题