找回密码
 立即注册

QQ登录

只需一步,快速开始

Winny

超级版主

141

主题

261

帖子

1682

积分

超级版主

Rank: 8Rank: 8

积分
1682
Winny
超级版主   /  发表于:2023-7-5 20:02  /   查看:1728  /  回复:0
需求背景:
客户在点击单元格时,需要同时获取值和绑定字段,方便入库。
对于普通的单元格绑定,可以采取直接调用getBindingPath()即可。但是对于表格绑定,需要绑定字段存在于Table的列信息上。需要定位到当前点击单元格是否属于表格,并获取到激活单元格处于表格的第几列。

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

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

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


  8.     }else{
  9.         alert("当前单元格不在Table中")
  10.     }
  11. }
复制代码



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

0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部