Node.js での エクセルデータ読み込み
カタログ系組版では、エクセルデータを起点としてカタログを組んでいく仕事があります。 いままではもっぱら Java / Groovy + POI を使って処理してきましたが、 Node.js でエクセルデータをパースできるか調べてみました。
結論
stack overflow のこちらの記事
Reading Excel file using node.js
の通りで簡単にパースできました.
「退屈なことはPythonにやらせよう」という本がありますが、これからは退屈なことは Node.js で済ませていきたい。
手順
こんなエクセルデータをサンプルとして用意.
Node.js のプロジェクトをつくる:
mkdir potate
cd potate
npm init -y
npm install --save xlsx
potate.xlsx を プロジェクトディレクトリにコピーした上で、以下のコード index.js を用意:
const xlsx = require('xlsx')
const workbook = xlsx.readFile('potate.xlsx');
const sheetNames = workbook.SheetNames;
const jsonObject = xlsx.utils.sheet_to_json(workbook.Sheets[sheetNames[0]]);
// 行ごとに取り出して処理.
jsonObject.forEach( (item)=> {
const hinmei = item.品名;
const price = item.価格;
console.log(`- ${hinmei}: ${price} `);
});
ここでは、パースしたエクセルデータから 品名と価格だけを取り出してプリントしています.
実行すると以下のようになります.
% node index.js
- ポテトチップス うすしお味: 1241
- ポテトチップス コンソメパンチ: 1322
- ポテトチップス のり塩: 1179
簡単です.
ポテトチップスが食べたくなってきた...