今回は、Nodeでエクセルの中身を読み込んでみます。
今回使用するのはxlsxモジュールです。
インストールしていない場合は、インストールしてください。
$ npm install xlsx --save
読み込むエクセルは、ソースファイルと同じ階層においてあるものとします。
準備したエクセルにはこんな感じでデータを入れています。
エクセルの名前は「sample.xlsx」です。
では、ソースを見ていきましょう。
今回は、指定したセルを読み込むところまでです。
// xlsxモジュールの読み込み var xlsx = require('xlsx'); // エクセルブックの読み込み var book = xlsx.readFile('sample.xlsx'); // シートの取得 var sheets = book.SheetNames; console.log(sheets); // ワークシートを設定 var workSheet = book.Sheets['Sheet1']; // セルの範囲を取得する var range = workSheet['!ref']; console.log('range = ' + range); // 指定のセルオブジェクトを取得する var itemA1 = workSheet['A1']; console.log(itemA1);
では、内容を細かく見ていきましょう。
xlsxモジュールの読み込み
今回は、Excelを操作するためのxlsxモジュールを読み込みます。
var xlsx = require('xlsx');
エクセルブックの読み込み
指定したエクセルが存在しない場合はエラーとなります。
先程紹介したエクセルを読み込んでいます。
var book = xlsx.readFile('sample.xlsx');
シートの取得
シートの一覧を取得できます。
今回は、「Sheet1」のみある状態です。
var sheets = book.SheetNames;
console.log(sheets);
出力結果はこのようになります。
[ 'Sheet1' ]
ワークシートを設定
今回は、Sheet1を設定しています。
先程読み込んだブックに存在するシートを設定しています。
var workSheet = book.Sheets['Sheet1'];
セルの範囲を取得する
現在、使用されているセルの範囲を取得します。
var range = workSheet['!ref']; console.log('range = ' + range);
出力結果はこのようになります。
range = A1:B2
今回、値を入れている範囲がバッチリ取得できていますね。
指定のセルオブジェクトを取得する
セルのオブジェクトを取得します。
取得できるのはいくつかありますが、主に使用するのは
「t」「v」「w」とかになるのではないかなと思います。
t:データ型
v:実データ
w:表示されているデータ
になります。
軽くお話するとr,hはリッチテキストの内容になっています。
サンプルはセルA1の内容を取得しています。
var itemA1 = workSheet['A1']; console.log(itemA1);
出力結果はこのようになります。
{ t: 's', v: 'A1です。', r: '<t>A1です。</t><phoneticPr fontId="1"/>', h: 'A1です。', w: 'A1です。' }
例えば実データだけ取得したい場合は以下のように書けばOKです。
var itemA1 = workSheet['A1'].v;
これでエクセルの中身を読み込むことができました。
今回は以上です。