之前一直都用PHPExcel导出excel文件,方便且强大。没有人提及的话,都根本不知道可以通过header设置报文首部字段来实现excel的导出。
这段时间来,虽然说一直都在进步,但是还远远不够,对一些基础中的基础原理了解甚少,比方这次的HTTP原理。大学读的不是计算机专业,甚至跟计算机没哪怕一丁点关系,但这不能成为借口。现在要做的是安排好自己的时间,见缝插针地恶补计算机各种原理基础,只有牢固地掌握基础,才不会比科班出身的人差。
好吧,有点偏离主题了。下面贴上代码:
header("Content-Type:application/vnd.ms-excel");
header("Content-Disposition:attachment;filename=test.xls");
$head = ['id', 'title', 'content', 'status'];
$body = [
[1, 'title', 'content', 1],
[2, 'title', 'content', 2],
[3, 'title', 'content', 3]
];
$value[] = implode("\t", $head);
foreach($body as $v) {
$value[] = implode("\t", $v);
}
$value = implode("\n", $value);
echo iconv('utf-8', 'gbk//TRANSLIT', $value);
以上代码模拟了导出数据库查询后得到的列表,要注意的是,iconv函数的第二个参数需要加上 //TRANSLIT
,原因见官方手册。
\t
和 \n
,用这两个字符的原因,试试在Excel里面使用 Tab
和 Enter
键就懂了。