如何将自动生成的Google Doc URL写入Google Sheet J列最后一行
解决方案
你可以直接将脚本中//Script to write this URL into the Shared Google Sheet will go here注释位置的内容替换为下方代码即可实现需求。
推荐实现方案(并发场景无错位问题)
表单提交触发的事件自带当前提交行的范围参数,直接使用该参数定位写入可以避免多用户同时提交时写到错误行的问题:
// 从提交事件中直接获取当前新增行所在的工作表 const activeSheet = e.range.getSheet(); // J列对应第10列,直接在当前提交行的J列写入生成的文档URL activeSheet.getRange(e.range.getRow(), 10).setValue(url);
按需可选:手动查找J列最后一行写入
如果你确实需要自行定位J列最后一个空行写入,可以使用以下代码:
// 获取当前激活的工作表 const activeSheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); // 统计J列已有内容的行数,+1即为最后一个空行位置 const lastRowOfJ = activeSheet.getRange("J:J").getValues().filter(String).length + 1; // 写入URL到对应位置 activeSheet.getRange(lastRowOfJ, 10).setValue(url);
原有代码优化建议(可选)
你现有代码中多个Vendor判断的逻辑可以简化为对象映射,减少重复代码、后续维护更方便:
// 替换原有的3个if判断块即可 const vendorFolderConfig = { "111": "bbb", "222": "ccc", "333": "ddd" }; // 新增异常校验,避免Vendor不匹配时报错 if (!vendorFolderConfig[Vendor]) { throw new Error(`Vendor ${Vendor} 未配置对应存储文件夹`); } const folder = DriveApp.getFolderById(vendorFolderConfig[Vendor]); const copy = file.makeCopy(`${TicketNumber} - ${SerialNumber}`, folder);
内容的提问来源于stack exchange,提问作者Jump_Ace
相关产品推荐
相关产品推荐

