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개의 레코드를 내보내고 쓰는 경우 시간 초과가 발생하기 쉽습니다. 테스트용 서버 및 콘텐츠 크기