以2D数组收集数据并使用setValues()

时间:2015-09-19 07:43:58

标签: google-apps-script

我正在尝试运行600个文件,并从每个文件中获取两条信息。然后我需要将这些信息粘贴到工作表中,以便我可以在其他地方使用它。我的代码工作太慢了,所以这就是我试图将它转换为数组的原因。这是我的代码:

      var fileCount;
      var dataArray = [];
      var files = folder.getFiles();

  while (files.hasNext()) {
    for(fileCount = 0; fileCount < 650; fileCount++) {

      currentFile = files.next();
      Logger.log(currentFile.getName());

      var fileID = currentFile.getId();
      var rowKey = SpreadsheetApp.openById(fileID).getSheetByName("Summary").getRange("A1").getValue();

//the error appears at the next line
      dataArray[fileCount][0] = fileID;
      dataArray[fileCount][1] = rowKey;          

      targetSheet.getRange(1,1,fileCount,2).setValues(dataArray);

      spreadsheet.toast("File " + fileCount + " data pasted.", "", -1);
      Logger.log(rowKey + ' : ' + fileCount + ' : ' + fileCount);
    }
  }

我得到的错误:

  

抱歉,错误发生:TypeError:无法设置属性&#34; 0.0&#34;的   未定义为&#34; 11GI2qs6LP1uQIYKIVtqX-rQ9JRC_-lH1NwVh0GLVn8Q&#34;。

我没有正确初始化/声明阵列吗? 我需要依赖某些图书馆吗?

1 个答案:

答案 0 :(得分:0)

我知道了 - 如果有其他人感兴趣的话:

      var fileCount;
      var foldercount = 0;
      var dataArray = [];
      var files = folder.getFiles();

      for(fileCount = 0; files.hasNext(); fileCount++) {

          currentFile = files.next();
          Logger.log(currentFile.getName());

          var fileID = currentFile.getId();
          var rowKey = SpreadsheetApp.openById(fileID).getSheetByName("Summary").getRange("A1").getValue();

          dataArray.push([fileID, rowKey]);
          //dataArray[fileCount][0] = fileID;
          //dataArray[fileCount][1] = rowKey;          

          spreadsheet.toast("File " + fileCount + " data pasted.", "", -1);
          Logger.log(rowKey + ' : ' + fileCount + ' : ' + fileCount);
        }

      targetSheet.getRange(1,1,fileCount,2).setValues(dataArray);