谷歌表格脚本appendRow参数不匹配异常求助
Google Apps Script appendRow 参数不匹配问题解决
错误原因
SpreadsheetApp.Sheet.appendRow()方法要求传入一维数组作为参数,但你代码里的data是包含email和sourceVals的对象,且sourceVals是getValues()返回的二维数组(哪怕是单行范围,getValues()也会返回[[值1, 值2,...]]的结构),完全不符合方法的参数规范,因此触发参数不匹配异常。
修正后的代码
const ss = SpreadsheetApp.getActiveSpreadsheet(); // 收集数据:将单行二维数组转为一维数组 const sourcerange = ss.getRangeByName("b94:h94"); const sourceVals = sourcerange.getValues()[0]; // 提取二维数组中的唯一一行 // 获取当前用户邮箱 const email = Session.getActiveUser().getEmail(); // 构造符合appendRow要求的一维数组:邮箱 + 源数据列 const data = [email, ...sourceVals]; console.log(data); // 追加数据到日志表 const destinationsheet = ss.getSheetByName("test log"); destinationsheet.appendRow(data);
关键修改点
- 处理源数据:通过
[0]将getValues()返回的二维数组转为一维数组,匹配单行数据的结构 - 构造参数:使用数组解构语法
[email, ...sourceVals],把邮箱和源数据合并成一个连续的一维数组,完全符合appendRow()的参数要求 - 移除无效的对象包装,直接生成方法所需的数组格式
内容的提问来源于stack exchange,提问作者Ana H
相关产品推荐
相关产品推荐

