Node.jsでエクセルパーサー

今回はNode.jsを使いエクセルをパースするモジュールを紹介しようと思います。

まずは、npm(Node package manager)から、ミドルウェアをインストールします。
プロジェクトをC:\develop配下に作成した後、以下のコマンドを実行します。

cd C:\develop\nodeApp
npm install xlsx

 

次に、jsファイルを作成します。
今回は先頭のシートをまるごとオブジェクトとして取得しようと思います。

まずはxlsxモジュールの読み込みを行います。

const xlsx = require('xlsx');

次に、ワークブックオブジェクトを取得します。

exports.getWorkBook = function(filePath) {
    // sheetStubs:値が空のセルをスタブセルとして扱うオプション
    let options = { sheetStubs: true };
    let workbook = xlsx.readFile(filePath, options); 

    return workbook;
}

次に、ワークブックオブジェクトから先頭シートに対応するオブジェクトを取得します。

exports.getFirstSheetObj = function(workbook) {
    let firstSheetName = workbook.SheetNames[0];
    let firstSheetOjb = workbook.Sheets[firstSheetName];

    return firstSheetOjb;
}

 

ちなみに、A1セルの値を取得したい場合はこんな感じで取得できます。

firstSheetOjb['A1']['v'];

※sheetStubsオプションを省略した場合、取得する方法が変わりますのでご注意ください。