ホームページ >バックエンド開発 >PHPチュートリアル >PHP で一度に 100,000 レコードを Excel にエクスポートする方法はありますか?

PHP で一度に 100,000 レコードを Excel にエクスポートする方法はありますか?

ringa_lee
ringa_leeオリジナル
2018-05-14 14:04:232691ブラウズ

PHP で一度に 100,000 レコードを Excel にエクスポートする方法はありますか?

返信内容:

PHP で一度に 100,000 レコードを Excel にエクスポートする方法はありますか?

MYSQLI_USE_RESULT バッファなしクエリ、長いストリームを使用し、ループ fetch_row で MySQL から 1 つずつ取得し、 fputcsv($fp, $row) がファイルにデータを 1 つずつ書き込み、それをユーザーにダウンロードのために提供しますコードのロジックは大まかに次のとおりです:

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 までご連絡ください。