CSVを読むためのモジュールをインストールする。
npm install csv-parse @types/csv-parse -S
サンプルはこんな感じだ。えーっと、ソースにコメントを書いたので説明は省く。あと、オプション指定できる項 の細かい説明はここに詳しく書いてある。
import csvParse from "csv-parse";
import csvParseSync from "csv-parse/lib/sync";
// csvファイルの内容を文字列で用意する。
// 本当はfs.readFileでcsvファイルを読み込み
const csvstr = '"hoge1","hoge2"\n1,3';
//// 非同期処理
// とりあえず、パースする。
// 配列(1レコード)の配列で返される。
csvParse(csvstr, {}, (err, recodes)=>{
// [ [ 'hoge1', 'hoge2' ], [ '1', '3' ] ] と表示される。
console.log(recodes);
});
// 1行目がフィールド名の場合
// 1行目のフィールド名がkeyになっているオブジェクトの配列になる。
csvParse(csvstr, { columns:true }, (err, recodes)=>{
// [ { hoge1: '1', hoge2: '3' } ] と表示される。
console.log(recodes);
});
// 1行目がフィールド名でkeyを独自に付ける場合
// オプションのnocolumnsでフィールド名(オブジェクトのkeyになる)を指定する。
// 1行目がフィールド名なので2行目からパーするするようにfromオプションで2を指定している。
// 結果、columnsで指定したフィールド名がkeyのオブジェクトの配列になる。
csvParse(csvstr, { columns:["field1", "field2"], from:2 }, (err, recodes)=>{
// [ { field1: '1', field2: '3' } ] と表示される。
console.log(recodes);
// hoge1:1 と表示される。
console.log(`hoge1:${recodes[0]["field1"]}`);
// hoge2:3 と表示される。
console.log(`hoge2:${recodes[0]["field2"]}`);
});
///// 同期処理
// 1行目がフィールド名でkeyを独自に付ける場合
try {
const recodes = csvParseSync(csvstr, { columns:["field1", "field2"], from:2 });
// [ { field1: '1', field2: '3' } ] と表示される。
console.log(recodes);
} catch(err) {
console.log(err);
}
![]() Node.js 超入門【電子書籍】[ 掌田津耶乃 ] |
![]() 実践Node.jsプログラミング【電子書籍】[ Mike Cantelon ] |
![]() サーバサイドJavaScript Node.js入門【電子書籍】[ 清水 俊博 ] |
![]() 現場で通用する力を身につける Node.jsの教科書【電子書籍】[ 掌田津 耶乃 ] |