Google脚本:如何将Google工作表上的数组值设置为特定的行/列

时间:2017-07-19 10:25:19

标签: javascript google-apps-script google-sheets

到目前为止,我有一个代码可以从Google云端硬盘中的文件夹中获取文件并在Google表格上创建一个列表



function getFiles() {

  //get value from A1 of every sheet
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheetsCount = ss.getNumSheets();
  var sheets = ss.getSheets();
  var rangeHeader = [];
  var range = [];
  var value = [];
  var files = [];

  // for every sheet
  for (var i = 1; i < sheetsCount; i++) {

    value.push(sheets[i].getRange("A1").getValue()); //get cell A1

  }

  // Get files from folder
  for (var i = 0; i < value.length; i++) { // For all the id on the main sheet

    if (value[i] != "") {
      sheets[i + 1].appendRow(["File Name", "URL", "Last Updated", "File Type", "Description"]);
      files = DriveApp.getFolderById(value[i]).getFiles();
      while (files.hasNext()) { // While there is files
        var file = files.next(); // Look on the next file
        var Name = file.getName();
        var url = file.getUrl();
        var date = file.getLastUpdated();
        var type = file.getMimeType();
        var des = file.getDescription();

        sheet[i + 1].appendRow(Name, url, date, type, des);
      }
    }
  }

}
&#13;
&#13;
&#13;

我在这张照片上完美地得到了一个结果

enter image description here

然后我通过删除A列上的值来创建一个更新列表的函数:E并再次运行getFiles函数

但是当我向其他列添加值

enter image description here

标题行[文件名,网址,上次更新,..]移动到工作表的第4行,但我希望每次运行该函数时都将其附加到第2行。

我将该值添加到该列,因为它可能有另一个我将来手动添加的信息。

所以,我想问一下如何在我的脚本上将值或appendRow设置为特定行(第2行)/列A到E?谢谢。

1 个答案:

答案 0 :(得分:0)

documention所示,appendRow()方法将数据放在最后一行之后。如果在您的示例中,该方法将第一行放在第四行上,则导致数据范围为G2:H3。

要从第二行开始,您应该使用getRange() method并设置数据:

var range = sheet.getRange(2, 1, 1, 5); // will get range A2:E2 for the header

对于其余数据,如果绝对想要使用appendRow()方法,则应考虑使用getDataRange() method从工作表中获取数据,使用clear() method清除工作表并恢复在您输入所需数据之后。

否则,您应该考虑将从文件中获取的数据放在一个数组上,并将其放在setValues() method的最后。