Winny 发表于 2023-7-5 20:02:42

SpreadJS根据选中单元格获取数据绑定字段

需求背景:
客户在点击单元格时,需要同时获取值和绑定字段,方便入库。
对于普通的单元格绑定,可以采取直接调用getBindingPath()即可。但是对于表格绑定,需要绑定字段存在于Table的列信息上。需要定位到当前点击单元格是否属于表格,并获取到激活单元格处于表格的第几列。

实现方案:
实现该需求,我们用到的主要API有以下三个:
(1)根据单元格获取表格实例;
(2)获取表格区域;
(2)获取表列绑定字段table.getColumnDataFiels(colIndex);

接下来最主要的一步,就是获取当前激活单元格处于表格第几列了,这里其实只需要做一个简单的减法操作,用激活单元格列索引减去表格起始列索引即可。

详细的示例代码如下:
function getTableColumnDataField(sheet,activeRow,activeCol){
    let table = sheet.tables.find(activeRow,activeCol)
    if(table){
      let range = table.range()
      let {col} = range
      let tableColIndex = activeCol-col
      alert(table.getColumnDataField(tableColIndex))


    }else{
      alert("当前单元格不在Table中")
    }
}


在线体验可以点击这里,跳转查看详细代码。

页: [1]
查看完整版本: SpreadJS根据选中单元格获取数据绑定字段