json2csvを使えば楽
インストール
npm install json2csv --save
csvデータ作成
sample.js
var json2csv = require('json2csv');
var fields = ['id', 'title'];
var data = {
"id": 1,
"title": "test",
};
var csv = json2csv({data: data, fields: fields});
フィールドのカスタマイズもできる
sample.js
var fieldNames = ['番号', 'タイトル'];
var csv = json2csv({data: data, fields: fields, fieldNames: fieldNames});
その他詳細な機能はgithubドキュメント参照。
日本語エクセル対応
エクセルで読み出したいので、charsetをshift_jisにしたい。
iconv_liteを使う
npm install iconv-lite --save
sample.js
var iconv = require('iconv-lite');
sample.js
var csv = iconv.encode(csv, "Shift_JIS");
送信
sailsなのでexpress.jsに準じる。
sample.js
var filename = 'file.csv'
res.attachment(filename);
var csv = iconv.encode(csv, "Shift_JIS");
res.send(csv);
これで日本語Excel対応のCSVファイルがレスポンスされます。