免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2551 | 回复: 0
打印 上一主题 下一主题

PHP生成EXCEL中单元格内换行的解决办法 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-12-22 15:41 |只看该作者 |倒序浏览
平常我们用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或\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中的转义符是(\)。引号比较多,但都有意义的,不能少一个。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP