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

如何从Google Sheet取值填充Web App输入框并验证匹配

问题需求

需要修改现有Google Apps Script(GS)和HTML代码,实现以下功能:

  • 在输入框中输入值,点击VALIDATE后,在Google Sheet的A2:D6范围内搜索A列的匹配项
  • 匹配成功:弹出"correct"提示,并将对应行的ITEM、QUANTITY、AMOUNT值填充到Web App的对应输入框
  • 匹配失败:弹出"incorrect"提示
修改后的GS代码
function doGet() {
  var template = HtmlService.createTemplateFromFile("page1");
  return template.evaluate().setSandboxMode(HtmlService.SandboxMode.IFRAME);
}

function fetchUserValues1(inputName) {
  var ss = SpreadsheetApp.openByUrl("GOOGLE SHEET URL"); 
  var sheet = ss.getSheetByName("Sheet 1"); 
  // 获取A2:D6的所有数据,返回二维数组
  var dataRange = sheet.getRange("A2:D6").getValues();
  
  // 遍历数组,匹配A列(索引0)的输入值
  for (var i = 0; i < dataRange.length; i++) {
    var row = dataRange[i];
    if (row[0] === inputName) {
      // 返回匹配行的ITEM(B列)、QUANTITY(C列)、AMOUNT(D列)数据
      return {
        item: row[1],
        quantity: row[2],
        amount: row[3]
      };
    }
  }
  // 无匹配项返回null
  return null;
}
修改后的HTML代码
<!DOCTYPE html>
<html>
<head>
    <base target="_top">
</head>
<br>
NAME:<br>
<input type="text" id="name">

<script>
    function checkUser(result) {
        var nameInput = document.getElementById("name").value;
        if (result) {
            alert("correct");
            // 填充对应输入框
            document.getElementById("Item").value = result.item;
            document.getElementById("Quantity").value = result.quantity;
            document.getElementById("Amount").value = result.amount;
        } else {
            alert("incorrect");
            // 匹配失败清空输入框
            document.getElementById("Item").value = "";
            document.getElementById("Quantity").value = "";
            document.getElementById("Amount").value = "";
        }
    }

    function handleButton() {
        var inputName = document.getElementById("name").value;
        // 将输入值传递给GS函数,成功后调用checkUser处理结果
        google.script.run.withSuccessHandler(checkUser).fetchUserValues1(inputName);
    }
</script>
<br>
<br>
<input type='button' value='VALIDATE' onclick="handleButton()">
<br>
<br>
<br>
ITEM:<br>
<input type="text" id="Item"><br>
QUANTITY:<br>
<input type="text" id="Quantity"><br>
AMOUNT:<br>
<input type="text" id="Amount">

</html>
关键改动说明
  • GS端:
    • 修改fetchUserValues1函数,接收前端传入的输入值作为参数
    • 使用getRange("A2:D6").getValues()获取目标范围的二维数组数据
    • 遍历数组匹配A列值,匹配成功则返回包含对应行数据的对象,否则返回null
  • HTML端:
    • 修改handleButton函数,获取输入框的值并传递给GS函数
    • 修改checkUser函数,根据GS返回的结果判断:
      • 有结果时弹出提示并填充三个输入框
      • 无结果时弹出错误提示并清空输入框

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 07:05:13