【问题标题】:Passing YouTube data into Google sheets column将 YouTube 数据传递到 Google 表格列
【发布时间】:2015-12-03 18:43:15
【问题描述】:

我的目标是传入 YouTube 频道的 ID,并在给定的时间窗口调用该频道的视频观看指标,将该数据存储在一个数组中,然后将每个视频观看指标按降序传递到 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 不接受对象作为参数。

是否有任何谷歌脚本函数可以用来将数组数据传递到同一列中的偏移单元格和连续单元格中?

注意:在注释掉 offsetRange 变量的情况下运行此脚本会导致 YouTube api 被成功调用,但是,只有 'data' 数组中的一个值被传递到 offsetCell 中

注意 2:我已经在 StackOverflow 上搜索了谷歌脚本问题和相关主题,但是我还没有看到将多个存储值从 API 调用传递到特定范围的偏移单元格(在一列中)的有效或相关解决方案。

【问题讨论】:

    标签: google-app-engine google-apps-script google-apps youtube-data-api


    【解决方案1】:

    解决方案相对简单

    我删除了数据数组,使用了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 列。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-24
      • 1970-01-01
      相关资源
      最近更新 更多