ホームページ  >  記事  >  バックエンド開発  >  PHP MySQL データを Excel ファイルにエクスポート (fputcsv)_PHP チュートリアル

PHP MySQL データを Excel ファイルにエクスポート (fputcsv)_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:27:44978ブラウズ

fputcsvを使ってCSVファイルを書き込み、ブラウザに直接Excelファイルを出力する方法です。

コードをコピーします コードは次のとおりです:

// Excel ファイルのヘッダーを出力します。user.csv を必要なファイル名に置き換えることができます
header('Content-Type: application/vnd. ms-excel') ;
header('Content-Disposition:attachment;filename="user.csv"');

//からデータを取得します。データベースを使用してメモリを節約するには、一度にデータをメモリに読み込まず、ハンドルから 1 行ずつ読み込むだけです
$sql = 'select * from tbl where ...';
$stmt = $db-> query($sql);

/ / PHP ファイルハンドルを開きます。php://output はブラウザに直接出力することを意味します
$fp = fopen('php://output', 'a'); Excelの列名情報を出力
$head = array ('Name', 'Gender', 'Age', 'Email', 'Telephone', '...');
foreach ($head as $i => $ v) {
// CSV Excel は GBK をサポートしています エンコーディングを変換する必要があります。変換しないとコードが文字化けします
$head[$i] = iconv('utf-8', 'gbk', $v); / fputcsv を通じてファイル ハンドルにデータを書き込みます
fputcsv($ fp, $head);

// カウンター
$cnt = 0; // $limit 行ごとに、大きすぎないように出力バッファを更新します。 small
$limit = 100000;

// メモリを無駄にせずに 1 行ずつデータをフェッチします
while ($row = $stmt->fetch(Zend_Db::FETCH_NUM)) {

$cnt ++; if ($limit == $cnt) { //データ量が多すぎることによる問題を防ぐために出力バッファをリフレッシュします
$cnt = 0; i => $v) {
$row[$i] = iconv('utf-8', 'gbk', $v);
fputcsv($fp, $row); : シンプルで使いやすく、メモリを非常に節約し、サードパーティのライブラリに依存しません。



http://www.bkjia.com/PHPjc/323705.html

www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/323705.html

技術記事

fputcsvを使ってCSVファイルを書き込み、ブラウザに直接Excelファイルを出力する方法です。 コードをコピーします。コードは次のとおりです。 // Excel ファイルのヘッダーを出力します。user.csv を必要なファイル名に置き換えることができます。


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