2020/8/17 JavaScript

パスワード付きのExcelファイルをJavaScriptで開く方法

JavaScriptでExcelファイルを取り扱えるライブラリは下記3つのライブラリが代表的です。

ただしパスワード付きのExcelファイルを開くにはxlsx-populateしか対応していません。
SheetJSはProfessional Editionでは対応しているそうです。

ブラウザでの使用サンプル: xlsx-populate 1.21.0

HTML

<input id="file" type="file" accept=".xlsx,.xlsm">
<input id="password" type="password">
<button id="open" onclick="clickOpen()">Open</button>

JavaScript

function clickOpen() {
  let file = document.getElementById('file');
  let password = document.getElementById('password');
  XlsxPopulate.fromDataAsync(file.files[0], { password: password.value })
    .then(function (workbook) {
      let result = {};
      for (let sheet of workbook.sheets()) {
        if (sheet.usedRange()) {
          result[sheet.name()] = sheet.usedRange().value();
        }
      }
      console.log(result);
    })
    .catch(function (error) {
      console.log(error);
    });
}