>  기사  >  백엔드 개발  >  PHP에서 한 번에 100,000개의 레코드를 Excel로 내보내는 방법이 있습니까?

PHP에서 한 번에 100,000개의 레코드를 Excel로 내보내는 방법이 있습니까?

ringa_lee
ringa_lee원래의
2018-05-14 14:04:232645검색

PHP에서 한 번에 100,000개의 레코드를 Excel로 내보낼 수 있는 방법이 있나요?

답글 내용:

PHP에서 한 번에 100,000개의 레코드를 Excel로 내보내는 방법이 있나요?

MYSQLI_USE_RESULT 버퍼링되지 않은 쿼리를 사용하여 MySQL에서 데이터를 하나씩 가져옵니다. fetch_row 루프에서 fputcsv($fp, $row)는 데이터를 파일에 하나씩 기록한 다음 다운로드할 수 있도록 사용자에게 제공합니다. .코드 로직은 대략 다음과 같습니다.

query($sql, MYSQLI_USE_RESULT); //无缓冲查询
while ($row = $result->fetch_row()) { //逐条读取(无缓冲查询)
    fputcsv($fp, $row); //逐条写入
}
fclose($fp);
header('Content-Disposition: attachment; filename="file.csv"');
readfile('file.csv');

그냥 정상적으로 다운로드하시면 됩니다.

PHPExcel은 라인 캐싱을 지원하므로 파일 캐시만 설정하면 됩니다.
https://github.com/PHPOffice/...

한 번에 100,000개의 레코드를 내보내고 쓰는 경우 시간 초과가 발생하기 쉽습니다. 테스트용 서버 및 콘텐츠 크기

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.