10
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2017-03-13

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

10
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?