同様の質問をいくつか見ましたが、私の問題に答える質問はありませんでした。
データベースから結果を CSV にエクスポートする [CSV にエクスポート] ボタンがあります。
ファイルを保存したくありませんが、ヘッダーを使用してエコーコンテンツをファイルにエクスポートし、Excel (または同様の製品) で開く必要があるだけです。
すべて正常に動作しますが、Excel は値を分離していないように見えますが、コンマをそのままにしてすべての行を 1 行に表示します。最初の行に "sep=,\r\n" を追加して、Excel に区切り記号としてコンマを使用するように指示する必要がある別の場所で解決策を見つけました。ただし、他の製品では、最初の行に sep= が表示され、残りの出力が続きます。
私が使用しているコードは次のとおりです。
header("Expires: 0");
header("Cache-control: private");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Description: File Transfer");
header("Content-Type: application/vnd.ms-excel");
header("Content-disposition: attachment; filename=export.csv");
echo "sep=,\r\n"; // This makes it work in excel but fails in other products such as openoffice
echo "this,is,just,a,test\r\n";
exit;