CSVファイルダウンロードのContent-Type
CSVファイルの配信や送信用のContent-Typeヘッダーを設定します。text/csvのcharset、Content-Disposition、Excel互換性を解説します。
File Uploads
詳細な説明
CSV Content-Type
CSV(カンマ区切り値)ファイルはtext/csvメディアタイプを使用します。非ASCIIデータにとって適切なcharset宣言が重要です。
ヘッダー値
Content-Type: text/csv; charset=utf-8
headerパラメータ
headerパラメータは最初の行にカラム名が含まれるかどうかを示します:
Content-Type: text/csv; charset=utf-8; header=present
値:presentまたはabsent。
ダウンロードのトリガー
ブラウザにCSVを表示するのではなくダウンロードさせるには:
Content-Type: text/csv; charset=utf-8
Content-Disposition: attachment; filename="export-2025-01.csv"
Excel互換性
Microsoft ExcelはUTF-8エンコーディングを正しく検出できない場合があります。互換性を確保するため、CSVコンテンツの先頭にUTF-8 BOM(バイトオーダーマーク)を付加します:
const BOM = "\uFEFF";
const csvContent = BOM + "Name,Email\nJohn,john@example.com";
代替:タブ区切り値
タブ区切りファイルの場合:
Content-Type: text/tab-separated-values; charset=utf-8
curlの例
# CSVエクスポートのダウンロード
curl -H "Accept: text/csv" \
-o report.csv \
https://api.example.com/reports/monthly.csv
fetch()でのレスポンス処理
const response = await fetch("/api/export.csv");
const blob = await response.blob();
const url = URL.createObjectURL(blob);
const a = document.createElement("a");
a.href = url;
a.download = "export.csv";
a.click();
ユースケース
APIからのCSVエクスポートの配信、データエクスポート機能の構築、スプレッドシートアプリケーションとの連携時に使用します。レポートダッシュボード、分析プラットフォーム、データパイプラインエンドポイントで一般的です。