有什么方法可以在NodeJS中生成受密码保护的XLSX吗?

时间:2019-01-18 09:22:28

标签: node.js passwords xlsx

我正在寻找一个npm软件包或任何其他解决方法,以能够生成带有密码的xlsx文件。我不想保护工作表或单元格...我希望保护整个文件的密码。 我发现很少有很好的程序包(excel4node,exceljs ..),但是它们都不能够满足我的需要。

任何建议表示赞赏

2 个答案:

答案 0 :(得分:0)

您可以使用xlsx-populate模块来执行此操作,例如:

const XlsxPopulate = require('xlsx-populate');

XlsxPopulate.fromBlankAsync().then(workbook => {
    workbook.sheet("Sheet1").cell("A1").value("Some sample text");
    return workbook.toFileAsync("./test.xlsx", { password: "$secret_password" });
});

生成的工作簿将要求用户输入正确的密码才能访问它。

答案 1 :(得分:0)

您可以使用exceljs包,它提供了一种创建受写保护的excel的方法,但不提供受密码保护的excel工作表。

await worksheet.protect('the-password', options);

参考:https://github.com/exceljs/exceljs#sheet-protection

但是,如果要创建一个受密码保护的Excel工作表,则可以使用xlsx-populate程序包。

XLSX支持敏捷加密和解密,因此您可以读写受密码保护的工作簿。要阅读受保护的工作簿,请输入密码作为选择:

XlsxPopulate.fromFileAsync("./Book1.xlsx", { password: "S3cret!" })
.then(workbook => {
    // ...
});

类似地,编写一个密码加密的工作簿:

workbook.toFileAsync("./out.xlsx", { password: "S3cret!" });

参考:https://github.com/dtjohnson/xlsx-populate#encryption