Edited at

Node.jsでファイル一覧を取得してゴニョゴニョしてみる

More than 1 year has passed since last update.

xlsxファイルからjsonファイルを作るのを自動化したかったので、Node.jsを使ってファイル取得をやってみた。

ファイルをNode.jsでゴニョゴニョするにはFile Systemというモジュールが必要。

利用するにはファイル内でrequire('fs')します。


index.js

"use strict"

let fs = require('fs');


fs.readdirを使用すると非同期的にファイルを取得してくれる。

第一引数で、ファイルを取得したいディレクトリ、第二引数のコールバックでファイル名が配列で帰ってくる。


index.js

"use strict"

let fs = require('fs');
fs.readdir('.', function(err, files){
if (err) throw err;
console.log(files);
});


これと、node-xlsx-jsonを利用して、同じ階層にあるxlsxファイルをjsonファイルに変換して出力してみました。


index.js

"use strict";

const fs = require('fs');
const xlsx2json = require("xlsx-to-json");

fs.readdir('.', function(err, files){
if (err) throw err;
files.forEach(function(file){
if(fs.statSync(file) && /.*\.xlsx$/.test(file)){
let fileName = file.split('.')[0];
xlsx2json({
input: file,
output: `${fileName}.json`
}, function(err, result) {
if(err) {
console.error(err);
}else {
console.log(result);
}
});
}
})
});


fs.statSyncはファイルが存在するかどうかをチェックする事ができます。

いちいち文字列埋め込むのは大変なので、スプレッドシートでうまく管理して、

EJSやPugなどでうまいこと突っ込むと大量生産が捗りそうです。


参考資料

Node.jsでフォルダの直下にあるファイルやフォルダのリストを取得する

http://info-i.net/fs-readdir

node.js ファイル一覧を取得する

http://qiita.com/_shimizu/items/f08eaacdbcdce0204e36