You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用ExcelJS读取多工作表Excel时获取表名返回undefined的问题

解决ExcelJS读取工作表返回undefined并获取名称的问题

问题原因

  • ExcelJS中getWorksheet()方法的索引参数是从1开始计数的,传入0会找不到对应工作表,因此返回undefined。
  • 直接打印工作表对象无法得到名称,需要访问对象的name属性。

修正方案

1. 获取指定索引的工作表名称

将索引改为1(对应第一个工作表),并访问name属性:

const Excel = require("exceljs");

const workbook = new Excel.Workbook();
const filePath = `./test/CustomerData.xlsx`;

workbook.xlsx.readFile(filePath)
    .then(function() {
        // 索引从1开始,获取第一个工作表
        let worksheet = workbook.getWorksheet(1);
        if (worksheet) {
            console.log("Sheet name---", worksheet.name);
        } else {
            console.log("指定索引的工作表不存在");
        }            
    })
    .catch(err => console.error("读取文件出错:", err));

2. 遍历所有工作表并输出名称

如果需要获取所有工作表的名称,可直接遍历workbook.worksheets数组:

const Excel = require("exceljs");

const workbook = new Excel.Workbook();
const filePath = `./test/CustomerData.xlsx`;

workbook.xlsx.readFile(filePath)
    .then(function() {
        console.log("所有工作表名称:");
        workbook.worksheets.forEach(worksheet => {
            console.log(`Sheet name---${worksheet.name}`);
        });
    })
    .catch(err => console.error("读取文件出错:", err));

补充说明

  • 除了用索引,还可以通过工作表名称直接定位:workbook.getWorksheet("CustomerData1")
  • 增加catch块能捕获文件路径错误、文件损坏等异常,便于排查问题。

内容的提问来源于stack exchange,提问作者steveS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 13:42:06