이 글에서는 PHP를 사용하여 Excel(CSV)을 효율적으로 내보내는 방법을 소개합니다. 도움이 필요한 친구들이 모두 참고할 수 있기를 바랍니다.
CSV
는 Comma Separated Value(Comma Separated Value
)의 영어 약어이며 일반적으로 일반 텍스트 파일입니다. . CSV
,是Comma Separated Value(逗号分隔值
)的英文缩写,通常都是纯文本文件。
如果你导出的Excel没有什么高级用法
的话,只是做导出数据
用那么建议使用本方法,要比PHPexcel
要高效的多。
二十万数据导出大概需要2
到3
내보낸 Excel에 고급 사용법
이 없고 데이터 내보내기 전용
이라면 보다 효율적인 이 방법을 사용하는 것이 좋습니다. >PHPexcel
많습니다. 20만 개의 데이터를 내보내는 데 약 2
~3
초가 걸립니다. /**
* 导出excel(csv)
* @data 导出数据
* @headlist 第一行,列名
* @fileName 输出Excel文件名
*/
function csv_export($data = array(), $headlist = array(), $fileName) {
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="'.$fileName.'.csv"');
header('Cache-Control: max-age=0');
//打开PHP文件句柄,php://output 表示直接输出到浏览器
$fp = fopen('php://output', 'a');
//输出Excel列名信息
foreach ($headlist as $key => $value) {
//CSV的Excel支持GBK编码,一定要转换,否则乱码
$headlist[$key] = iconv('utf-8', 'gbk', $value);
}
//将数据通过fputcsv写到文件句柄
fputcsv($fp, $headlist);
//计数器
$num = 0;
//每隔$limit行,刷新一下输出buffer,不要太大,也不要太小
$limit = 100000;
//逐行取出数据,不浪费内存
$count = count($data);
for ($i = 0; $i < $count; $i++) {
$num++;
//刷新一下输出buffer,防止由于数据过多造成问题
if ($limit == $num) {
ob_flush();
flush();
$num = 0;
}
$row = $data[$i];
foreach ($row as $key => $value) {
$row[$key] = iconv('utf-8', 'gbk', $value);
}
fputcsv($fp, $row);
}
}
로그인 후 복사
추천: "🎜PHP 비디오 튜토리얼🎜"🎜
위 내용은 PHP로 Excel(CSV)을 효율적으로 내보내는 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!