ExcelJS教程:如何设置Excel文件默认激活第一个工作表
解决ExcelJS默认激活第一个工作表的问题
嘿,我懂你遇到的麻烦了——用ExcelJS生成多工作表的Excel文件时,打开总是默认跳到最后一个工作表,而你想让第一个工作表(Farmer)成为默认激活的那个。
看你的代码,问题就出在workbook.views的配置里:你把activeTab设成了1,但ExcelJS里工作表的索引是从0开始计数的,第一个工作表(Farmer)对应的索引是0,第二个工作表(Family)才是1。
修改后的代码片段
把activeTab的值改成0就能解决这个问题,我还顺便补全了你代码里漏掉的闭合括号:
let workbook = new Excel.Workbook(); workbook.creator = 'PT. ABCDE'; workbook.lastModifiedBy = 'PT. ABCDE'; workbook.created = new Date(); workbook.modified = new Date(); workbook.lastPrinted = new Date(); workbook.properties.date1904 = true; let worksheetFarmer = workbook.addWorksheet('Farmer'); dataFarmer.forEach(function(item, index) { worksheetFarmer.addRow(item); }); let worksheetFamily = workbook.addWorksheet('Family'); dataFamily.forEach(function(item, index) { worksheetFamily.addRow(item); }); workbook.views = [ { x: 0, y: 0, width: 10000, height: 20000, firstSheet: 0, // 控制标签栏显示的第一个工作表,你的设置是对的 activeTab: 0, // 修改为0,激活第一个工作表 visibility: 'visible' } ]; const PathFilename = config.get('palmWritePath')+ExcelName+'.xlsx'; workbook.xlsx.writeFile(PathFilename).then(function() { const returnJson = { success: true, message: "Excel exported", filename: ExcelName+'.xlsx' }; res.json(returnJson); res.end(); console.log('File write done'); });
小知识点补充
firstSheet:控制Excel底部标签栏显示的起始位置,不会改变激活状态activeTab:决定打开文件时默认激活的工作表,索引严格对应你添加工作表的顺序(第一个addWorksheet的表是索引0,第二个是1,以此类推)
内容的提问来源于stack exchange,提问作者Nikolius Lau




