如何从 Node.js 的工作簿中删除工作表? // 类型错误:无法读取未定义的属性“删除”

问题描述

我需要从 Node.js 中的 Excel 工作簿中删除工作表。我使用 SheetJs(我更喜欢使用这个答案,但我非常感谢所有其他可能性,我可以改变)。找了好几天没找到解决办法。

所以我有这个(如果你需要测试代码):

const xlsx = require('xlsx');
workBook = xlsx.readFile("todo-list.xlsx",{cellDates:true});
const headerData = ["Id","Name","Description","Due Date","Priority","Status","Notes"];
const workSheet = xlsx.utils.aoa_to_sheet([headerData]);
xlsx.utils.book_append_sheet(workBook,workSheet,"TO-DEL");

我试过了,但它不起作用:

workSheet.delete();

或者这个...

workBook.Sheets["TO-DEL"].delete();

结局是这样的:

xlsx.writeFile(workBook,'todo-list.xlsx');

错误是: 类型错误:无法读取未定义的属性删除

您对此有任何想法或经验,可以帮助我吗?非常感谢任何帮助!

解决方法

这很完美:

const Excel = require('exceljs');

const workbook = new Excel.Workbook();
workbook.xlsx.readFile("todo-list.xlsx").then(function() {
        const worksheet = workbook.getWorksheet("Sheet1");
        console.log(worksheet);
        workbook.removeWorksheet(worksheet.id);
        return workbook.xlsx.writeFile( "todo-list.xlsx");
});