javascript - 将 GoogleSheet 复制到另一张工作表时出现数组大小问题
问题描述
我需要以数组形式获取一张数据,执行一些处理,然后将其保存到另一张表中。
无需尝试任何中间处理,
var booking = getRowsData(sheet); //should create the array
var range = target.getRange(lastDBRow+1,1,numRows); //obtains the destination range (numRows logged as 3)
然后
range.setValues([booking]); //tries to save the values but throws an error "Incorrect range height, was 1 but should be 3"
检查预订对象
var response = ui.prompt(booking.length + " " + booking[0].length, ui.ButtonSet.OK);
显示长度 3 和 booking[0].length (我理解为列)未定义....
那么为什么行长不匹配呢?列值是否应该未定义?
提前致谢!
完整的代码是:
var ss = SpreadsheetApp.getActive();
var sheet = ss.getSheetByName('New booking');
var headers = sheet.getRange(1, 1,1,sheet.getLastColumn());
var lastRow = sheet.getLastRow();
var numRows= lastRow-1
var target = ss.getSheetByName('Test'); //temp redirect to test sheet
var lastDBRow =target.getLastRow(); //we want to append the data after this
var booking = getRowsData(sheet); // Get data to copy as array object
= ui.prompt(booking.length + " " + booking[0].length, ui.ButtonSet.OK);
// Returns 3 Undefined
var response = ui.prompt(numRows, ui.ButtonSet.OK);
// Returns 3
var range = target.getRange(lastDBRow+1,1,numRows); // Must match range size
range.setValues([booking]);
}
解决方案
在我看来,此范围内没有定义列数: var range = target.getRange(lastDBRow+1,1,numRows); // 必须匹配范围大小 range.setValues([booking]); 由于不打算使用调试,我无法确认我的想法,但我看到您正在定义起始行、起始列和行数,而不是列数。我不确定该错误消息是否会由此引起,但看起来需要考虑。
推荐阅读
- c++ - 在这种情况下,我真的是在复制字节还是在复制字符?
- docker - docker私有注册表是否有默认端口
- oracle - oracle单行变成变量
- python - 模型类默认关键字如何在 sqlalchemy 中工作
- sql - “插入选择”如何处理大量数据
- javascript - 如何确定是否点击了地图或标记
- facebook - 如何量化 Facebook 页面活动?(图形 API)
- php - 在注册表单中添加 WordPress(WooCommerce) 中的 OTP 验证
- excel - 查找 Excel 中存在值的列的最后一行索引
- angular - 如何替换ngFor中的null值