最近、バックエンドでデータを Excel にエクスポートする必要があるため、php Excel を使用することがよくあります。 phpエクセルのパッケージ。
最初は非常に使いやすいですが、エクスポートする必要があるデータが数万に達すると、メモリ不足の問題が直接発生します。
このソリューションの利点は、追加のインターフェイスが必要ないことですが、それはフロントエンド開発者によって異なります。
CSV にエクスポート
このソリューションは高速で、完全にバックエンドで実装されています。欠点は、CSV 形式には純粋なデータが必要であり、次のようなリッチ テキスト フォームを含めることができないことです。ピクチャー。
以下では主にcsvエクスポートの方法を紹介します
<?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のチャンクで使うと簡単かつ迅速に全データをエクスポートできます。
関連する推奨事項:
PHP データ エクスポートと WEB サービスに関する問題
PHP データ エクスポートと WEB サービスに関連する問題
以上がPHPデータエクスポートの詳しい説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。