🚀 新規事業
csv-export
最終更新 2026年05月09日 / 40_新規事業/SCALE_Build/カタログ/機能集/csv-export.md
CSV エクスポートヘルパ
用途
配列データを CSV にしてダウンロード。Excel互換のためBOM付与。
特徴
- 配列 → CSV
- BOM付与(Excel互換)
- カンマ・改行エスケープ
- blob ダウンロード
コード(コピペ用)
export function exportCSV<T extends Record<string, any>>(rows: T[], filename = 'export.csv') {
if (rows.length === 0) return;
const headers = Object.keys(rows[0]);
const escape = (v: any) => {
const s = String(v ?? '');
return /[",\n]/.test(s) ? '"' + s.replace(/"/g, '""') + '"' : s;
};
const csv = [
headers.join(','),
...rows.map(r => headers.map(h => escape(r[h])).join(','))
].join('\n');
// Excel 互換のため BOM 付与
const blob = new Blob(['\uFEFF' + csv], { type: 'text/csv;charset=utf-8' });
const url = URL.createObjectURL(blob);
const a = document.createElement('a');
a.href = url; a.download = filename;
document.body.appendChild(a); a.click(); document.body.removeChild(a);
setTimeout(() => URL.revokeObjectURL(url), 1000);
}
使い方
対象プロジェクトに該当ファイルをコピーして、props を流し込むだけ。
注意事項
- 依存パッケージを忘れず追加