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

Google表单验证birthday2024表格Random ID有效性的技术问询

问题解答

1. 是否可通过新建Google表单检索birthday2024表格M列的代码?

完全可行,借助Google Apps Script就能实现Google表单与目标表格的联动校验逻辑。

2. 具体实现方案

准备工作

  • 给birthday2024表格新增一列(比如N列,命名为「使用状态」),用来标记Random ID是否被使用,初始值统一设为「未使用」。
  • 新建一个Google表单,仅添加一个「短文本」类型的问题,标题设为「请输入Random ID」。

编写Google Apps Script

打开新建的表单,点击右上角「扩展程序」→「Apps脚本」,替换默认代码为以下内容:

function onFormSubmit(e) {
  // 获取表单提交的Random ID
  const submittedId = e.response.getItemResponses()[0].getResponse();
  // 关联birthday2024表格
  const ss = SpreadsheetApp.openById("你的birthday2024表格ID");
  const sheet = ss.getSheetByName("表格标签名"); // 替换为实际表格标签名
  const data = sheet.getDataRange().getValues();
  
  let isValid = false;
  let rowIndex = -1;
  
  // 遍历表格数据校验ID
  for (let i = 1; i < data.length; i++) { // 跳过表头,从第二行开始
    const storedId = data[i][12]; // M列对应索引12(列从0开始计数)
    const expireDate = new Date(data[i][9]); // J列对应索引9
    const useStatus = data[i][13]; // N列对应索引13
    
    if (storedId === submittedId) {
      rowIndex = i + 1; // 表格行号从1开始
      // 校验未过期且未被使用
      const today = new Date();
      if (today <= expireDate && useStatus === "未使用") {
        isValid = true;
        // 更新使用状态为已使用
        sheet.getRange(rowIndex, 14).setValue("已使用");
      }
      break;
    }
  }
  
  // 向提交者返回结果
  const response = isValid ? "✅ 验证通过:Random ID正确、未过期且未被使用" : "❌ 验证失败:Random ID错误、已过期或已被使用";
  e.response.withItemResponse(e.response.getItemResponses()[0]).setFeedback(response);
}

配置触发器

  • 在Apps脚本编辑器左侧点击「触发器」图标。
  • 点击「添加触发器」,按以下配置:
    • 运行函数:onFormSubmit
    • 部署类型:「Head」
    • 事件源:「表单」
    • 事件类型:「当表单提交时」
  • 保存触发器,按提示完成脚本权限授权。

注意事项

  • 替换代码中的你的birthday2024表格ID:打开目标表格,地址栏中d/与/edit之间的字符串即为表格ID。
  • 替换代码中的表格标签名:比如表格默认的「Sheet1」,需与实际标签一致。
  • 若表格表头位置有调整,需对应修改代码中的列索引值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 10:09:57