Node.jsでWebAPIを取得してExcelファイルに出力したい場合は下記のように記述します。
まず、npmでofficegenをインストールする必要があります。
npm install officegen
今回は、サンプルとして「iTunes Store Web Service Search API」を見つけたので、そのWebAPIを使って地図アプリを検索してみます。
script.js
var fs = require('fs');
var request = require('request');
var officegen = require('officegen');
var Excel = officegen('xlsx');
var list;
var sheet;
var order;
var SaveSheet;
var i;
var WebAPI = "http://ax.itunes.apple.com/WebObjects/MZStoreServices.woa/wa/wsSearch?term=map&country=JP&entity=software&limit=100";
request(WebAPI, function(err, res, body){
if (err) throw err;
list = JSON.parse(body);
Excel_Export(list);
});
function Excel_Export(list) {
sheet = Excel.makeNewSheet();
sheet.name = "sample";
sheet.data[0] = ["アプリ名","金額","作成者"];
for (i = 0; i < list.results.length; i++) {
order = list.results[i];
sheet.data[i + 1] = [order.trackCensoredName,order.formattedPrice,order.artistName];
};
SaveSheet = fs.createWriteStream('sample.xlsx');
Excel.generate(SaveSheet);
console.log("「sample.xlsx」を作成しました。");
}
script.jsを実行すると下記のように取得したAPIがExcelに保存されます。
Excelを操作 :
var officegen = require('officegen');
var Excel = officegen('xlsx')
「iTunes Store Web Service Search API」の設定 : term : 検索ワード , country : 国 , entity : ジャンル , limit : 表示数
var WebAPI = "http://ax.itunes.apple.com/WebObjects/MZStoreServices.woa/wa/wsSearch?term=map&country=JP&entity=software&limit=100"
JSON文字列をオブジェクトに変換 :
list = JSON.parse(body)
Excelシートを新規作成・名称変更・表題入力 :
sheet = Excel.makeNewSheet();
sheet.name = "sample";
sheet.data[0] = ["アプリ名","金額","作成者"]
JSONの指定した項目をExcelにコピー :
for (i = 0; i < list.results.length; i++) {
order = list.results[i];
sheet.data[i + 1] = [order.trackCensoredName,order.formattedPrice,order.artistName];
}
指定したファイル名でExcel保存 :
SaveSheet = fs.createWriteStream('sample.xlsx');
Excel.generate(SaveSheet)
簡易的な操作であれば、officegenで事足るのではないかと思います。
- 参考文献
[![JS+Node.jsによるWebクローラー/ネットエージェント開発テクニック](http://ecx.images-amazon.com/images/I/61DHJGf1uSL._SL160_.jpg)](http://www.amazon.co.jp/exec/obidos/ASIN/4883379930/dayjournal-22/ref=nosim/)
[JS+Node.jsによるWebクローラー/ネットエージェント開発テクニック](http://www.amazon.co.jp/exec/obidos/ASIN/4883379930/dayjournal-22/ref=nosim/)