将 YouTube 数据传递到 Google 工作表列
Passing YouTube data into Google sheets column
我的目标是传入 YouTube 频道的 ID 并在给定的 window 时间内调用该频道的视频观看指标,将该数据存储在一个数组中,然后将每个视频观看指标传递到array.length 降序排列。
//...key variables
var channelId = sheet.getActiveCell().getValue();
var offsetCell = sheet.getActiveCell().offset(0,2);
//further down the script...
for(i=0; i < dataResponse.items.length; i++) {
var data = [];
var vidDataLen = dataResponse.items.length;
var offsetRange = sheet.getRange(offsetCell, vidDataLen, 0)
data.push(dataResponse.items[i].statistics.viewCount);
//sheet.appendRow(data)
offsetCell.setValue([data])
}
如您所见,我最初使用的是 appendRow,但我不想将数据追加到覆盖行中,我希望数据传递到 offsetCell 的列和行中,并下降到后续单元格中.
我的努力
var offsetRange = sheet.getRange(offsetCell, vidDataLen, 0)
我们正在尝试根据数据数组中的项目数量创建活动范围,因为每个通道的数量都会有所不同。
但是,这没有用,因为 getRange 不接受对象作为参数。
是否有任何 google 脚本函数可用于将数组数据传递到偏移单元格和同一列中的连续单元格?
注意:运行 这个带有 offsetRange 变量的脚本被注释掉导致 YouTube api 被成功调用,但是,'data' 数组中只有一个值被传递到 offsetCell
注意 2:我已经在 Whosebug 上搜索了 google 脚本化问题和相关主题,但是我还没有看到将多个存储值从 API 调用传递到特定对象的有效或相关解决方案偏移单元格的范围(在一列中)。
这个问题的解决方案相对简单
我删除了数据数组并使用了语句 sheet.insertRows(offsetCell.getRow()+1,vidDataLen);
在我想将数据传递到的列中创建单元格范围,这样现有数据就不会被覆盖
var vidDataLen = dataResponse.items.length;
sheet.insertRows(offsetCell.getRow()+1,vidDataLen);
for(i=0; i < dataResponse.items.length; i++) {
offsetCell.setValue(dataResponse.items[i].statistics.viewCount);
offsetCell = offsetCell.offset(1, 0);
}
我没有将数据传递到循环数组中,而是直接将每个值传递到 setValue() 方法的参数中,然后分配 offsetCell 以将 offsetCell 的每个新迭代偏移 1 行和 0 列。
我的目标是传入 YouTube 频道的 ID 并在给定的 window 时间内调用该频道的视频观看指标,将该数据存储在一个数组中,然后将每个视频观看指标传递到array.length 降序排列。
//...key variables
var channelId = sheet.getActiveCell().getValue();
var offsetCell = sheet.getActiveCell().offset(0,2);
//further down the script...
for(i=0; i < dataResponse.items.length; i++) {
var data = [];
var vidDataLen = dataResponse.items.length;
var offsetRange = sheet.getRange(offsetCell, vidDataLen, 0)
data.push(dataResponse.items[i].statistics.viewCount);
//sheet.appendRow(data)
offsetCell.setValue([data])
}
如您所见,我最初使用的是 appendRow,但我不想将数据追加到覆盖行中,我希望数据传递到 offsetCell 的列和行中,并下降到后续单元格中.
我的努力
var offsetRange = sheet.getRange(offsetCell, vidDataLen, 0)
我们正在尝试根据数据数组中的项目数量创建活动范围,因为每个通道的数量都会有所不同。
但是,这没有用,因为 getRange 不接受对象作为参数。
是否有任何 google 脚本函数可用于将数组数据传递到偏移单元格和同一列中的连续单元格?
注意:运行 这个带有 offsetRange 变量的脚本被注释掉导致 YouTube api 被成功调用,但是,'data' 数组中只有一个值被传递到 offsetCell
注意 2:我已经在 Whosebug 上搜索了 google 脚本化问题和相关主题,但是我还没有看到将多个存储值从 API 调用传递到特定对象的有效或相关解决方案偏移单元格的范围(在一列中)。
这个问题的解决方案相对简单
我删除了数据数组并使用了语句 sheet.insertRows(offsetCell.getRow()+1,vidDataLen);
在我想将数据传递到的列中创建单元格范围,这样现有数据就不会被覆盖
var vidDataLen = dataResponse.items.length;
sheet.insertRows(offsetCell.getRow()+1,vidDataLen);
for(i=0; i < dataResponse.items.length; i++) {
offsetCell.setValue(dataResponse.items[i].statistics.viewCount);
offsetCell = offsetCell.offset(1, 0);
}
我没有将数据传递到循环数组中,而是直接将每个值传递到 setValue() 方法的参数中,然后分配 offsetCell 以将 offsetCell 的每个新迭代偏移 1 行和 0 列。