ホームページ >バックエンド開発 >PHPチュートリアル >PHPデータエクスポートの知識ポイントを詳しく解説
最近、バックエンドでデータを Excel にエクスポートする必要があるため、php Excel を使用することがよくあります。 phpエクセルのパッケージ。
最初はとても使いやすいですが、エクスポートする必要があるデータが数万件に達すると、メモリ不足の問題に直結します。
その後、いくつかの解決策を見つけました。
フロントエンドソリューション
PHPはSheetJS/js-xlsxと連携して大量のExcelデータをエクスポートします
このソリューションの利点は、追加のインターフェイスを必要としないことですが、フロントエンドに依存します-開発者終了。
CSV にエクスポート
このソリューションは高速で、完全にバックエンドで実装されています。欠点は、CSV 形式には純粋なデータが必要であり、画像などのリッチ テキスト フォームを含めることができないことです。 。
以下では主にcsvエクスポートの方法を紹介します
PHP公式ドキュメントの紹介
<?php $list = array ( array('aaa', 'bbb', 'ccc', 'dddd'), array('123', '456', '789'), array('"aaa"', '"bbb"') ); $fp = fopen('file.csv', 'w'); foreach ($list as $fields) { fputcsv($fp, $fields); } fclose($fp); ?>
エクスポートの完成例
<?php $name = 'test'; header ( "Content-type:application/vnd.ms-excel" ); header ( "Content-Disposition:filename=".$name.".csv" ); header ('Cache-Control: max-age=0'); //打开PHP文件句柄,php://output 表示直接输出到浏览器 $fp = fopen('php://output', 'a'); // 写入BOM头,防止乱码 fwrite($fp, chr(0xEF).chr(0xBB).chr(0xBF)); // 生成的测试数据 function test() { for ($i=0; $i < 150000; $i++) { yield ['name', $i, '男']; } } // 表头 $headers = ['名字', '年龄', '性别']; fputcsv($fp, $headers); foreach (test() as $value) { fputcsv($fp, $value); } fclose($fp); ?>
laravelでchunkを使って使うと簡単かつ迅速に全てのデータをエクスポートできます。
関連する推奨事項:
Python を使用してデータを Excel にエクスポートする方法に関するヒントを共有する
推測: PHP を使用してデータを Excel テーブルにエクスポートする方法 (図による説明)
php はデータを execl にエクスポートしますファイル形式
以上がPHPデータエクスポートの知識ポイントを詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。