【发布时间】:2021-06-22 05:45:39
【问题描述】:
一个 excel 文件,其中包含两个工作表(TAB1,TAB2)。
如何将下面 excel 中的“TAB1”保存为新的 Excel 文件,比如 tab1.xlsx?
我正在尝试使用 exceljs 解决它,但不确定如何将其保存为新文件。如果在 exceljs 的帮助下无法完成,请提出任何其他方法来完成。
const ExcelJS = require('exceljs');
const wb = new ExcelJS.Workbook();
//const newwork = new ExcelJS.Workbook();
filename = "abc.xlsx";
const fl = async () => {
wb.xlsx.readFile(filename)
.then(async function () {
wb.eachSheet(async function (worksheet, sheetId) {
console.log("worksheet", worksheet, "sheetid", sheetId);
if(worksheet.name.toLocaleLowerCase() ==='tab1'){
var data = wb.getWorksheet(worksheet.name);
// how to save worksheet as tab1.xlsx
// let dt =await newwork.xlsx.writeFile('tab1.xlsx',data);
}
});
});
}
fl();
【问题讨论】:
-
我觉得没有简单的解决办法,可以试试下面的步骤吗? 1. 创建工作簿
var newWorkBook = new ExcelJS.Workbook();2. 创建一个新工作表var newWorkSheet = newWorkBook.addWorksheet(worksheet.name);3. 为每一行设置从原始工作表到新工作表的值:worksheet.eachRow({ includeEmpty: true }, function(row, rowNumber) { newWorkSheet.getRow(rowNumber).values = row.values; });4. 现在您可以保存工作簿await newWorkBook.xlsx.writeFile(worksheet.name + '.xlsx'); -
它正在复制数据但丢失了所有样式格式
-
直接设置工作表怎么样:
newWorkbook.worksheets[0] = worksheet; -
试过还是一样。
标签: javascript excel worksheet exceljs