PHP导出生成EXCEL文件
<?php
// 解决中文乱码所做的编码转换
function xecho($content){
echo mb_convert_encoding($content,"gbk","auto");
}
// 必须要的基本header
header("Content-Type: application/vnd.ms-excel; charset=utf-8");
header("Content-Disposition: attachment; filename=progress.csv");
// 输出列名
xecho("#,产品,开发人员,Bug数\n");
foreach($stories as $k => $story){
echo $k + 1 .','; //输出第1列,列结束后用逗号分隔
xecho ($story->productName .','); //输出第2列,列结束后用逗号分隔
/* 这里是很重要的技巧,在某一列内换成多行,需要写成\"A\r\n\B\r\n\C\r\n\"
* 这样子才能在这个列展示成
* A
* B
* C
*/
$prefix = "\"";
$developer = $prefix;
foreach($story->tasks as $task){
$developer .= $task->developer ."\r\n";
}
$developer = rtrim($developer) .$prefix;
xecho ($developer .","); //输出第3列,列结束后用逗号分隔
echo $story->bugNum; //输出最后1列,列结束后用需要输出\n来换行
echo "\n";
}
【备注】
在php中要导出数据到excel表中,需要在单元格内换行,捣鼓了好久,终于搞定。一开始用\r\n,结果是excel里直接跳到了下一行。
实际上在要进行换行的字符串两头都加上"就可以了
例如:要显示:
你好
hello
字符串写成:
"\"你好\r\nhello\""