超级链接中如何使用JS修改当前点击单元格的后几列单元格值

image.png

FineReport Wjayon 发布于 2025-5-6 17:26
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
用户k6280494Lv6专家互助
发布于2025-5-6 17:29

用按钮控件才能获得位置,超级链接获取不到

  • Wjayon Wjayon(提问者) 一点办法都没有了吗
    2025-05-06 17:41 
  • 用户k6280494 用户k6280494 回复 Wjayon(提问者) 超链没法获取当前位置啊
    2025-05-06 17:42 
  • 用户k6280494 用户k6280494 回复 Wjayon(提问者) 不扩展可以这样获取,扩展的就不得行
    // 获取单元格对象
    var cell = _g().getCell(1, 1); // 例如获取 A1 单元格
    // 获取位置信息
    var position = cell.getPosition();
    var row = position[0]; // 行位置
    var col = position[1]; // 列位置
    2025-05-06 17:44 
最佳回答
0
snrtuemcLv8专家互助
发布于2025-5-7 07:57

这边设置,然后去掉这个语句,用这边获取行列就可以

image.png

image.png

最佳回答
0
FR-LeonLv4初级互助
发布于2025-5-7 09:07

在超级链接中使用JS修改当前点击单元格的后几列单元格值,可通过以下步骤实现:

1. 设置超级链接
  1. 选中目标单元格,点击右侧属性面板的「超级链接」按钮

  2. 选择「JavaScript脚本」类型

  3. 添加参数row(值为公式row())和col(值为公式col())以获取当前行列号参数设置参考3

2. 编写JavaScript代码

在脚本编辑框中输入以下代码(示例修改后3列的值):


// 获取当前行列号

var currentRow = row;

var currentCol = col;



// 修改后1列的值(当前列+1)

_g().setCellValue(0, currentCol, currentRow, "新值1");

// 修改后2列的值(当前列+2)

_g().setCellValue(0, currentCol + 1, currentRow, "新值2");

// 修改后3列的值(当前列+3)

_g().setCellValue(0, currentCol + 2, currentRow, "新值3");

  • setCellValue参数说明:(sheetIndex, col, row, value)

  • 列号从0开始(A=0, B=1...),行号从1开始

3. 扩展功能
  • 动态赋值:可通过_g().getCellValue()先获取其他单元格值再赋值

  • 批量操作:结合循环语句修改多行数据(参考下方代码):


for (var i = 0; i < 3; i++) {

_g().setCellValue(0, currentCol + i, currentRow, "值" + i);

}
效果验证

点击单元格后,右侧指定列的值会被自动修改。事件设置参考

  • 4关注人数
  • 44浏览人数
  • 最后回答于:2025-5-7 09:07
    请选择关闭问题的原因
    确定 取消
    返回顶部