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

企业数据库Web应用:按登录用户名匹配Sheet AF列数据需求

提取匹配登录用户的AF列数据解决方案

原代码存在两个核心问题:

  1. findAll()返回的是Range对象数组,直接调用getDisplayValues()会触发错误,需逐个处理每个Range
  2. 未限定只提取AF列数据,返回的是匹配单元格所在的整行内容

修正后的代码

/**DataTable */
function getAllData() {
  var sess = getSession();
  var uid = sess.uid;
  var sheet = LoginSheet;
  // 获取数据表所有数据行(跳过表头,假设表头在第1行)
  var data = sheet.getDataRange().getDisplayValues();
  var afColumnIndex = 31; // AF列是第32列,数组索引从0开始所以是31
  var usernameColumnIndex = 0; // 假设用户名在A列,索引为0
  var result = [];

  // 遍历每一行,匹配用户名并提取AF列数据
  for (var i = 1; i < data.length; i++) { // i从1开始跳过表头
    var row = data[i];
    if (row[usernameColumnIndex] === uid) {
      result.push(row[afColumnIndex]);
    }
  }

  Logger.log(result);
  return result;
}

关键改进点

  • 直接获取全表数据后遍历,避免TextFinder的Range数组处理问题
  • 明确指定AF列索引(AF对应第32列,数组索引为31)和用户名所在列索引(假设为A列,索引0)
  • 只收集匹配用户的AF列数据,精准满足需求
  • 跳过表头行,避免无效数据干扰

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 11:27:04