Node.jsでエクセルparseして出力など
本来はやりたくないことだが、大量のエクセルファイルで用意されてしまったデータから必要なものだけ抜き出して整形して出力する必要性があったので対応した。
使用したのは xlsx モジュール
例えば、下記のようなテンプレートのエクセルファイルがあるとする。
このエクセルファイルを開いて、指定の要素を取り出すコードは下記の通り。
var fs = require("fs"); var XLSX = require('xlsx'); var PROP_MAP = { 'C2': 'master_id', 'C4': 'name', 'C5': 'description', 'C6': 'age', 'C7': 'height', 'C8': 'weight', }; var workbook = XLSX.readFile('hogehoge.xlsx'); workbook.SheetNames.forEach(function(y) { var worksheet = workbook.Sheets[y]; for (var z in worksheet) { if(z[0] === '!') continue; console.log(z + "=" + JSON.stringify(worksheet[z].v)); } });
出力結果は下記の通り。
B2="master_id" C2=1000 B4="name" C4="hogehoge man" B5="description" C5="saying hogehoge" B6="age" C6=35 B7="height" C7="180cm" B8="weight" C8="75kg"
後は取得できたデータをごにょごにょ整形して出力してあげればおk。