google-apps-script - 如何使用数组设置值并匹配长度
问题描述
我从外部 API 获取数据列表,当我执行 setValues() 时,它会出现错误:
数据中的行数与范围内的行数不匹配。数据有 1 但范围有 365。(第 59 行,文件“Extra_queries”)
我尝试删除设置值上的列长度并更改顺序。
我认为阵列不是很好。我认为这个数组是为列而不是为行设置的?预期范围位于第 3 行第 16 列,直到数据结束。
function getComments(doc){
var basicMetadata = getDeliveryBasicMetadata()
var ordersId = doc.getRange("C3:C").getValues();
var last_row = ordersId.filter(String).length;
var range = doc.getRange(3,16,last_row,1);
var comments = [];
for (var i = 3; i <= last_row; ++i){
var orderIndex = i-3
var comment = lookForComments(ordersId[orderIndex],basicMetadata);
comments.push(comment);
}
var setValuesLenght = last_row - 2 //as we start on row 3 to align Last_row with lenght of the comments Array. Now both 365
doc.getRange(3,16,setValuesLenght,1).setValues([comments]);
}
在这里您可以看到使用注释构建的数组。(很多“”,因为这是一个测试)
解决方案
问题:
您的数组是一维的,而不是您期望的二维。既然是这种情况,它将永远只有 1 行长。
解决方案:
doc.getRange(3,16,1,comments.length).setValues([comments]);
推荐阅读
- laravel-5 - 发送推送请求的错误请求
- css - bootstrap 4.1 - 仅获取网格系统
- javascript - React Native Jest 覆盖输出受 ES6 模块导出方式的影响
- php - $_FILE 在 $_post 中申请
- laravel - 在主机上使用自定义 /etc/host 为 Docker 提供网页服务
- r - r-grid.arrange。当我制作图时,它们会重叠。如何让它们不重叠
- scala - 如果我有身份验证详细信息,如何使用 spark 编程 API 写入 HDFS?
- c++ - QT中,接收到child产生的信号后如何从parent中移除child widget?
- javascript - 反应“无法读取未定义的属性'绑定'”
- java - 如何在底部导航栏保持存在时启动不同的布局