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

如何在Google Apps Script的appendRow中插入其他单元格的值?

解决Google Apps Script表单提交追加缺失字段的问题

表单结构

DATE :Entity Name :Office :
IDSTOCK NO.UNITDESCRIPTIONQUANTITY
1JTL-0005PCBROOM, SOFT (TAMBO)1

目标输出(目标工作表)

DATEENTITY NAMEOFFICEIDSTOCK NO.UNITDESCRIPTIONQUANTITY
(填写的日期)(填写的实体名)(填写的部门)1JTL-0005PCBROOM, SOFT (TAMBO)1

修改后的完整代码

function btn_dataEntryPrevSubmit(){
  var ui = SpreadsheetApp.getUi();
  var response = ui.alert('Are you sure you want to continue?', ui.ButtonSet.YES_NO);
  
  if (response == ui.Button.YES) {
    // 获取表单中需要的固定字段值
    const deDate = formDE.getRange("F4").getValue();
    const deEntityName = formDE.getRange("F8").getValue();
    const deOffice = formDE.getRange("F10").getValue();
    
    const idCell = formDE.getRange("A4");
    let currentID = idCell.getValue();
    
    // 获取表格行数据并过滤空行
    let dataEntryRange = formDE.getRange("D14:H");
    let values = dataEntryRange.getValues().filter(row => row.some(cell => cell !== ""));

    for(let index = 0; index < values.length; index++){
      // 按目标顺序拼接数据:DATE -> ENTITY NAME -> OFFICE -> ID -> 行数据
      const rowData = [deDate, deEntityName, deOffice, currentID, ...values[index]];
      db_RequisitionOffice.appendRow(rowData);
      
      // 更新ID值
      currentID++;
      idCell.setValue(currentID);
    }

    // 清空表单输入区域
    const dataEntryFieldRangeForDeletion = ["D14:H"];
    dataEntryFieldRangeForDeletion.forEach(f => formDE.getRange(f).clearContent());
    
    // 提交成功提示
    ui.alert('Successfully submitted request!', ui.ButtonSet.OK);
  }
}

关键修改说明

  • 补全固定字段取值:取消注释并添加.getValue(),实际获取DATE、Entity Name、Office的内容,而非仅获取单元格对象。
  • 过滤空行:添加filter(row => row.some(cell => cell !== "")),避免追加表格中无内容的空行。
  • 按目标顺序拼接数据:使用数组展开语法严格匹配目标工作表的列顺序,确保字段位置正确。
  • 优化ID处理:提前获取当前ID,循环内直接递增,减少重复读取单元格的操作,提升效率。
  • 调整提示位置:将成功提示移到YES分支内,仅在提交完成后弹出,避免误触发。

内容的提问来源于stack exchange,提问作者Lyndon Broz Tonelete

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 23:50:34