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

如何修改Google Apps Script实现双列匹配搜索,匹配成功返回整行数据

修改后的Google Apps Script实现方案

第一步:调整前端Index.html表单

你需要在原有表单中新增密码输入项,示例表单结构如下:

<form id="searchForm">
  <div>
    <label>用户ID:</label>
    <input type="text" name="searchtext" required>
  </div>
  <div>
    <label>密码:</label>
    <input type="password" name="password" required>
  </div>
  <button type="submit">查询</button>
</form>

第二步:修改后端GAS代码

完整修改后的代码如下:

function doGet() {
  return HtmlService.createTemplateFromFile('Index')
        .evaluate()
        .setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL);
}

/* PROCESS FORM */
function processForm(formObject){  
  var result = "";
  // 仅当用户ID和密码都输入时才执行搜索
  if(formObject.searchtext && formObject.password){
      result = search(formObject.searchtext, formObject.password);
  }
  return result;
}

//SEARCH FOR MATCHED CONTENTS 
function search(userId, inputPwd){
  var spreadsheetIds = ['Workbook1','Workbook1']; // 第二个工作簿ID有误请自行修改
  var dataRages = ['Sheet1!A2:K','Sheet2!A2:K'];
  var ar = [];
  
  const userIdCol = 0; // A列对应存储用户ID
  const pwdCol = 1; // B列对应存储密码

  spreadsheetIds.forEach((spreadsheetId, i) => {
    var data = Sheets.Spreadsheets.Values.get(spreadsheetId, dataRages[i]).values;        
    data.forEach(function(f) {
      // 仅用户ID和密码同时匹配时才返回对应行
      if (f[userIdCol] == userId && f[pwdCol] == inputPwd) {
        ar.push(f);
      }
    });
  });
  return ar;
}

改动说明

  • 调整了processForm函数的校验逻辑,同时读取表单提交的用户ID和密码两个参数
  • 调整了search函数的入参与匹配规则,从原来仅匹配A列用户ID,改为同时校验A列用户ID、B列密码与输入值完全一致
  • 注意:当前方案为明文传输和存储密码,仅适合内部低安全需求场景使用,生产环境建议对密码做哈希加密后再存储校验

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 07:51:03