LoginSignup
2
1

More than 5 years have passed since last update.

exceljsが急に動かなくなった話

Last updated at Posted at 2016-07-16

Node.jsでExcel読み込みをする実装を終え、サーバーで起動させてみたところエラーが発生。
ローカルでは元気に動いてたじゃない。

環境

Node v6.2.2
npm 3.10.6
exceljs 0.2.8

現象

Node.jsの実装抜粋

var excel = require('exceljs');
var workbook = new excel.Workbook();

workbook.xlsx.readFile(targetExcelPath).then(function () {
    workbook.eachSheet(function (sheet, sheetId) {
        // 実装
    });
});

発生したエラー抜粋

throw new Error('Unexpected xml node in parseOpen: ' + JSON.stringify(node));
^
Error: Unexpected xml node in parseOpen: {"name":"cp:lastPrinted","attributes":{},"isSelfClosing":false}

Unexpected xml?
もう一度、ローカルで資源を最新化して動作確認すると同じエラーが再現。
いやいやいや、さっきまで元気に動いてたじゃない。
Excelの読み込み部分は修正していないし、読み込んでいるファイルも変えていない。

原因

exceljsに何かが起こったとしか考えられないのでpackage.jsonを確認。
"dependencies": {
"exceljs": "^0.2.8"
},

インストールされているexceljsのVersionを確認すると
exceljs@0.2.10
リビジョン2つも上がっとる。。。(2016/07/14時点)

対応

package.jsonを修正し、ライブラリのVersionを0.2.8固定で指定する。
"dependencies": {
"exceljs": "0.2.8"
},

npm install exceljs
でexceljsをインストールし直すと元気を取り戻してくれた。

npm install exceljs --save
でpackage.jsonに追加された事で満足して
^がマイナーバージョンの更新を自動で取り込む、という意味を理解していなかったのが悪いのだが
リビジョンが変わるだけでこんな根本的な部分が動かなくなるのは想定外過ぎた。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1