xlsx-encrypter
Version:
Service for generating and encrypting Excel/XLSX files
40 lines • 1.35 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.XlsxGenerator = void 0;
const xlsx_1 = require("xlsx");
const XlsxPopulate = require("xlsx-populate");
class XlsxGenerator {
createWorkSheet(data, sheetName, headers, cellOrigin) {
const options = {
header: headers,
origin: cellOrigin,
};
return {
sheet: xlsx_1.utils.json_to_sheet(data, options),
name: sheetName,
};
}
async exportWorkSheetsToFile(filePath, workSheets, password) {
const workBook = this.createWorkBook();
for (const workSheet of workSheets) {
xlsx_1.utils.book_append_sheet(workBook, workSheet.sheet, workSheet.name);
}
xlsx_1.writeFile(workBook, filePath);
if (password) {
await this.encryptXlsxFile(filePath, password);
}
}
createWorkBook() {
return xlsx_1.utils.book_new();
}
async encryptXlsxFile(filePath, password) {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
await XlsxPopulate.fromFileAsync(filePath).then(async (workbook) => {
await workbook.toFileAsync(filePath, {
password,
});
});
}
}
exports.XlsxGenerator = XlsxGenerator;
//# sourceMappingURL=index.js.map