ホームページ  >  記事  >  バックエンド開発  >  PHPデータエクスポートの知識ポイントを詳しく解説

PHPデータエクスポートの知識ポイントを詳しく解説

小云云
小云云オリジナル
2018-02-22 10:16:501348ブラウズ

最近、バックエンドでデータを Excel にエクスポートする必要があるため、php Excel を使用することがよくあります。 phpエクセルのパッケージ。

最初はとても使いやすいですが、エクスポートする必要があるデータが数万件に達すると、メモリ不足の問題に直結します。

その後、いくつかの解決策を見つけました。

フロントエンドソリューション

PHPはSheetJS/js-xlsxと連携して大量のExcelデータをエクスポートします

このソリューションの利点は、追加のインターフェイスを必要としないことですが、フロントエンドに依存します-開発者終了。

CSV にエクスポート

このソリューションは高速で、完全にバックエンドで実装されています。欠点は、CSV 形式には純粋なデータが必要であり、画像などのリッチ テキスト フォームを含めることができないことです。 。

以下では主にcsvエクスポートの方法を紹介します

PHP公式ドキュメントの紹介


<?php

$list = array (
  array(&#39;aaa&#39;, &#39;bbb&#39;, &#39;ccc&#39;, &#39;dddd&#39;),
  array(&#39;123&#39;, &#39;456&#39;, &#39;789&#39;),
  array(&#39;"aaa"&#39;, &#39;"bbb"&#39;)
);

$fp = fopen(&#39;file.csv&#39;, &#39;w&#39;);

foreach ($list as $fields) {
  fputcsv($fp, $fields);
}

fclose($fp);
?>

エクスポートの完成例


<?php

$name = &#39;test&#39;;
header ( "Content-type:application/vnd.ms-excel" );
header ( "Content-Disposition:filename=".$name.".csv" );
header (&#39;Cache-Control: max-age=0&#39;);

//打开PHP文件句柄,php://output 表示直接输出到浏览器
$fp = fopen(&#39;php://output&#39;, &#39;a&#39;);  

// 写入BOM头,防止乱码
fwrite($fp, chr(0xEF).chr(0xBB).chr(0xBF)); 

// 生成的测试数据
function test()
{
  for ($i=0; $i < 150000; $i++) {
    yield [&#39;name&#39;, $i, &#39;男&#39;];
  }
}

// 表头
$headers = [&#39;名字&#39;, &#39;年龄&#39;, &#39;性别&#39;];

fputcsv($fp, $headers);

foreach (test() as $value) {
  fputcsv($fp, $value);
}

fclose($fp);
?>

laravelでchunkを使って使うと簡単かつ迅速に全てのデータをエクスポートできます。

関連する推奨事項:

Python を使用してデータを Excel にエクスポートする方法に関するヒントを共有する

推測: PHP を使用してデータを Excel テーブルにエクスポートする方法 (図による説明)

php はデータを execl にエクスポートしますファイル形式

以上がPHPデータエクスポートの知識ポイントを詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。