欢迎光临
我们一直在努力

PHP大数据导出excel之csv

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);
分享到:更多 ()