首页 > 解决方案 > 如何从 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');

错误是: TypeError:无法读取未定义的属性“删除”

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

标签: javascriptnode.jsworksheet-functionworksheetsheetjs

解决方案


这很完美:

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");
});

推荐阅读