外部ライブラリをダウンロードする必要はありません。これに必要なものはすべて、すでにPHPに組み込まれています。
手順:
- phpでクエリを実行して、出力する行を取得します
SELECT * FROM table WHERE id IN (1,2,...)
を使用できます。 -
mysql_fetch_array()
を使用します またはmysql_fetch_assoc()
行を1つずつ取得するには -
fputcsv()
を使用する それらをcsvで終わるファイルに出力するには-これによりデータが適切にエスケープされます
http://www.php.net/manual/en /function.mysql-fetch-array.php
http://php.net/manual/en/function.fputcsv .php
Excelはファイルを読み取ることができます。
fputcsv
のデフォルトを上書きします 区切り文字とExcelにタブを使用すると、ファイルの読み取りがさらに簡単になります。カンマ(デフォルト)を使用する場合、Excelインポートの区切り文字としてカンマを選択する必要がある場合があります。
すでに行が設定されていると仮定した場合の実際の例を次に示します。
$rows; // predefined
$filename = 'webdata_' . date('Ymd') . '.csv';
header("Content-Disposition: attachment; filename=\"$filename\"");
header("Content-Type: application/octet-stream");
// that indicates it is binary so the OS won't mess with the filename
// should work for all attachments, not just excel
$out = fopen("php://output", 'w'); // write directly to php output, not to a file
foreach($rows as $row)
{
fputcsv($out, $row);
}
fclose($out);