NodejsでCSVをダウンロードする
Nodejsで、データベースの内容をCSVでダウンロードすることがあったときのメモです。
・項目名は日本語とする
・Excelで読み込むのでShift-JISとする
概要です
今回、csvへのフォーマットはプラグインの “json2csv” を利用しました。
UTF-8 → Shift-JIS は “jconv”を利用しました。
const Json2csvParser = require('json2csv').Parser;
データはこんな感じ。items = [{"name" : "田中一郎","zip" : "5660000"},{"name" : "佐藤二朗","zip" : "5660001"}]
項目名とタイトルのマッチングを行う。
const fields = [{label: '発注日',value: 'order_ymd',},{label: '施設名',value: 'hospital_name',}]const json2csvParser = new Json2csvParser({ fields });
ダウンロードします。
const csv = json2csvParser.parse( items );res.setHeader('Content-disposition', 'attachment; filename=data.csv');res.setHeader('Content-Type', 'text/csv; charset=Shift_JIS'); res.send( jconv.convert( csv, 'UTF8', 'SJIS' ));res.end();
これで、Shift-JISに変換されたCSVファイルがダウンロードできました。


