Google App Script中getRange无法获取完整行数据问题求助
问题排查及修复方案
核心问题点
- 调用的
getValue()方法仅会返回选中范围**左上角第一个单元格(即A4)**的内容,要获取多单元格范围的所有值,需要使用getValues()方法。 getValues()返回的是二维数组,A4:E4属于单行多列范围,返回结构为[[A4值, B4值, C4值, D4值, E4值]],原代码额外套了一层[all_data]会生成三维数组,不符合appendRow()要求传入一维数组的参数规则。
修复后的代码
function saveData() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheetByName("History"); // 取getValues返回结果的第一个元素,即可得到对应单行的一维数组 var all_data = sheet.getRange("A4:E4").getValues()[0]; sheet.appendRow(all_data); }
补充说明
如果需要保留原单元格的格式化显示内容(比如带格式的日期、货币符号、百分比显示),可以把getValues()替换为getDisplayValues()即可。
内容的提问来源于stack exchange,提问作者Vandana Khanna
相关产品推荐
相关产品推荐

