PHP导出excel我们一般首选PHPExcel插件导出,但是Excel存在格式问题,在大数据导出时需要大量循环计算格式,导致功耗大增,导出缓慢,严重超时可能程序崩溃。如果我们不需要特定格式,那么可以考虑导出成csv,也可以用excel打开。
规则:
1 、开头是不留空,以行为单位。
2 、 可含或不含列名,含列名则居文件第一行。
3 、 一行数据不跨行,无空行。
4 、以半角逗号(即,)作分隔符,列为空也要表达其存在。
5 、列内容如存在半角引号(即"),替换成半角双引号("")转义,即用半角引号(即"")将该字段值包含起来。
6 、文件读写时引号,逗号操作规则互逆。
7 、内码格式不限,可为 ASCII、Unicode 或者其他。
8 、不支持数字
9 、不支持特殊字符
格式:'名称','性别','年龄'
'张三','男','13'
'李四','女','13'
'王五','男','13'
'赵六','未知','13'代码:
<?php // 头部标题
$csv_header = ['名称','性别','年龄'];
// 内容
$csv_body = [
['张三','男','13'],
['李四','女','13'],
['王五','男','13'],
['赵六','未知','13']
];
/**
* 开始生成
* 1. 首先将数组拆分成以逗号(注意需要英文)分割的字符串
* 2. 然后加上每行的换行符号,这里建议直接使用PHP的预定义
* 常量PHP_EOL
* 3. 最后写入文件
*/
// 打开文件资源,不存在则创建
$fp = fopen('test.csv','a');
// 处理头部标题
$header = implode(',', $csv_header) . PHP_EOL;
// 处理内容
$content = '';
foreach ($csv_body as $k =?> $v) {
$content .= implode(',', $v) . PHP_EOL;
}
// 拼接
$csv = $header.$content;
// 写入并关闭资源
fwrite($fp, $csv);
fclose($fp);
评论1
暂时没有评论