如何从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
相关产品推荐
相关产品推荐

