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

如何获取动态HTML表格中的输入值并导出数组到Google Script

解决方法

问题根源

你当前无法获取输入值的核心原因有两个:

  1. 直接读取单元格innerHTML只能拿到HTML源码,用户输入的实时值并不存在于HTML字符串里,而是存储在<input>、<select>这类表单元素的value属性中,需要先定位到单元格内的表单元素再读取值。
  2. google.script.run无法直接传递客户端DOM对象(你直接传整个table元素是无效的),需要先在前端把所有表单数据整理成可序列化的二维数组,再传递给服务端Google Script。

修正后的代码

1. 先修复addRows的小bug

你原来的addRows函数中循环条件写的是i <= cellCount,会额外多插入一个空白单元格,修改循环条件即可:

function addRows(){ 
    var table = document.getElementById('emptbl');
    var rowCount = table.rows.length;
    var cellCount = table.rows[0].cells.length; 
    var row = table.insertRow(rowCount);
    // 把原来的<=改成<,避免多插单元格
    for(var i =0; i < cellCount; i++){
        var cell = row.insertCell(i);
        var copycel = document.getElementById('col'+i).innerHTML;
        cell.innerHTML=copycel;
    }
}

2. 重写sendIt函数实现数据读取

function sendIt(e){
    // 阻止表单默认提交跳转行为
    e && e.preventDefault();
    var oTable = document.getElementById('emptbl');
    var rowLength = oTable.rows.length;
    // 定义存储所有数据的二维数组
    var tableData = [];

    // 从i=1开始循环,跳过第一行表头
    for (let i = 1; i < rowLength; i++){
        var oCells = oTable.rows[i].cells;
        var cellLength = oCells.length;
        // 存储当前行的所有字段值
        var rowData = [];

        for(let j = 0; j < cellLength; j++){
            var cell = oCells[j];
            // 查找单元格内的input或select元素
            var input = cell.querySelector('input, select');
            // 读取元素的value值加入行数组
            rowData.push(input ? input.value.trim() : '');
        }
        // 把行数据加入总数组
        tableData.push(rowData);
    }

    // 打印测试,你可以自己查看数组结构是否符合预期
    console.log(tableData);
    // 把整理好的纯数组传递给服务端Google Script
    google.script.run.appendRowFromTableSubmit(tableData);
    alert("数据提交成功");
}

3. 修正提交按钮的触发逻辑

把HTML里的提交按钮代码改成下面这样,避免表单默认跳转:

<input type="submit" value="Submit1" onclick="sendIt(event)" />

后续适配

你只需要对应修改服务端的appendRowFromTableSubmit函数,直接接收这个二维数组参数做后续处理即可,数组的每一项对应表格的一行数据,顺序和表头的Tag、Size、Notes、Species、Gender完全对应。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 14:24:04