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

如何使用JavaScript从Excel工作表表格读取数据转为JSON格式

解决XLSX库读取工作表内指定表格数据的问题

情况1:读取Excel内置的结构化表格(List Object)

如果你的数据是Excel中通过「插入-表格」创建的正式结构化表格,可以直接利用工作表的tables属性自动获取表格范围,无需手动指定:

var reader = new FileReader();
reader.readAsBinaryString(file);     
reader.onload = function(e) {
  var data = e.target.result;         
  try {       
    var workbook = XLSX.read(data, { type : 'binary' });                 
    var sheet = workbook.Sheets["SheetName"];
    var jsonData = [];
    
    // 检查工作表是否包含结构化表格
    if (sheet.tables && sheet.tables.length > 0) {
      // 获取第一个表格的范围(多表格场景可按索引/名称选择)
      var tableRange = sheet.tables[0].ref;
      jsonData = XLSX.utils.sheet_to_json(sheet, {
        defval: '', 
        header: 'A',
        range: tableRange // 直接使用表格自带的范围
      });
    }
    // 后续处理jsonData...
  } catch (err) {
    console.error(err);
  }
};

情况2:读取普通单元格区域(无需手动写死范围)

如果数据是普通单元格组成的区域,可通过解析工作表的有效数据范围,自定义调整读取的起始/结束位置:

var reader = new FileReader();
reader.readAsBinaryString(file);     
reader.onload = function(e) {
  var data = e.target.result;         
  try {       
    var workbook = XLSX.read(data, { type : 'binary' });                 
    var sheet = workbook.Sheets["SheetName"];
    var jsonData = [];
    
    // 获取工作表所有有效数据的完整范围
    var fullRange = XLSX.utils.decode_range(sheet['!ref']);
    
    // 自定义调整范围:示例为从第3行(Excel行号)到第E列的最后一行
    fullRange.s.r = 2; // 起始行:0-based索引,2对应Excel第3行
    fullRange.e.c = 4; // 结束列:0-based索引,4对应Excel第E列
    
    // 将调整后的范围转换为A1格式字符串(如"A3:E16")
    var customRange = XLSX.utils.encode_range(fullRange);
    
    jsonData = XLSX.utils.sheet_to_json(sheet, {
      defval: '', 
      header: 'A',
      range: customRange
    });
    // 后续处理jsonData...
  } catch (err) {
    console.error(err);
  }
};

关键说明

  • sheet['!ref']:XLSX库自动识别的工作表有效数据边界,存储为A1格式的范围字符串(如"A1:E20")。
  • XLSX.utils.decode_range:将A1格式范围解析为包含起始/结束行、列的对象(采用0-based索引)。
  • XLSX.utils.encode_range:将解析后的范围对象重新转换为A1格式字符串,供sheet_to_json的range参数使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 19:20:47