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

Google Forms实现BMI自动计算功能咨询

Google Forms实现BMI自动计算与展示的最优方案

Google Forms原生不支持实时计算和展示结果,必须结合Google Sheets + Apps Script来实现,以下是两种实用方案,按需选择:

方案1:提交表单后自动计算并发送BMI结果(最易实现,稳定可靠)

适合需要收集数据并主动告知用户结果的场景:

  1. 创建表单并关联表格
    • 在Google Forms中添加「身高(米,数字型,设置步长0.01)」「体重(公斤,数字型,步长0.1)」两个题目,额外添加一个「邮箱」题用于接收结果。
    • 进入表单「响应」页面,点击「链接到表格」,创建或绑定现有Google Sheets。
  2. 自动计算BMI
    • 在绑定的Sheets中新增「BMI」列(比如C列),在C2单元格输入公式:
      =IF(AND(A2<>"",B2<>""), B2/(A2^2), "")
      
      (假设A列是身高,B列是体重)下拉填充公式,后续新提交的响应会自动计算BMI。
  3. 设置自动邮件回复
    • 打开绑定的Sheets,点击「扩展程序」→「Apps Script」,替换默认代码为:
      function sendBMIEmail(e) {
        const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
        const row = e.range.getRow();
        const height = sheet.getRange(row, 1).getValue();
        const weight = sheet.getRange(row, 2).getValue();
        const bmi = sheet.getRange(row, 3).getValue();
        const email = sheet.getRange(row, 4).getValue();
        
        const subject = "你的BMI计算结果";
        const body = `身高:${height}米,体重:${weight}公斤,BMI值为:${bmi.toFixed(2)}`;
        MailApp.sendEmail(email, subject, body);
      }
      
    • 点击左侧「触发器」→「添加触发器」,选择sendBMIEmail函数,事件源选「从电子表格」,事件类型选「On form submit」,完成授权后,用户提交表单即可收到包含BMI的邮件。

方案2:填写时实时计算并展示BMI(进阶,实时反馈)

适合需要用户在填写过程中即时看到BMI结果的场景:

  1. 用Apps Script构建自定义表单
    • 打开Apps Script,创建新项目,新增HTML文件index.html:
      <!DOCTYPE html>
      <html>
        <body>
          <h3>BMI计算表单</h3>
          <label>身高(米):</label><input type="number" step="0.01" id="height"><br><br>
          <label>体重(公斤):</label><input type="number" step="0.1" id="weight"><br><br>
          <button onclick="calculateBMI()">计算BMI</button>
          <p id="result"></p>
          <br>
          <button onclick="submitData()">提交数据</button>
          
          <script>
            function calculateBMI() {
              const height = parseFloat(document.getElementById('height').value);
              const weight = parseFloat(document.getElementById('weight').value);
              if (height > 0 && weight > 0) {
                const bmi = weight / (height ** 2);
                document.getElementById('result').innerText = `你的BMI值:${bmi.toFixed(2)}`;
              } else {
                document.getElementById('result').innerText = "请输入有效的身高和体重";
              }
            }
            
            function submitData() {
              const height = document.getElementById('height').value;
              const weight = document.getElementById('weight').value;
              const bmi = document.getElementById('result').innerText.split(':')[1];
              if (height && weight && bmi) {
                google.script.run.saveToSheet(height, weight, bmi);
                alert("数据已提交");
              } else {
                alert("请先完成BMI计算");
              }
            }
          </script>
        </body>
      </html>
      
    • 修改Code.gs代码:
      function doGet() {
        return HtmlService.createHtmlOutputFromFile('index');
      }
      
      function saveToSheet(height, weight, bmi) {
        const sheetId = "你的Google Sheets ID"; // 替换为实际表格ID
        const sheet = SpreadsheetApp.openById(sheetId).getActiveSheet();
        sheet.appendRow([new Date(), height, weight, bmi]);
      }
      
  2. 部署为Web应用
    • 点击「部署」→「新建部署」,类型选「Web应用」,执行权限选「我」,访问权限按需设置(比如「任何人,甚至匿名」),部署后得到的URL就是可直接访问的实时计算表单。

关于是否需要集成Google Sheets

是的,Google Sheets是核心载体:方案1用它存储响应数据并通过公式计算BMI;方案2用它持久化提交的数据。Google Forms本身不具备数据计算和存储后的逻辑处理能力,必须依赖Sheets或其他外部工具。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 04:42:47