需要google apps脚本来遍历数组

时间:2014-03-21 15:39:17

标签: javascript google-apps-script

我已修改此代码,但我无法弄清楚如何让它运行整个电子表格。

修改后的代码会复制电子表格,根据其他电子表格对其进行重命名,然后将文档归档到相应的文件夹中。

function generateMonthlyReport() {

  var data = SpreadsheetApp.openById(CUSTOMER_SPREADSHEET);

  // Fetch variable names
  // they are column names in the spreadsheet
  var sheet = data.getSheets()[0];
  var columns = getRowAsArray(sheet, 1);

  Logger.log("Processing columns:" + columns);

  var customerData = getRowAsArray(sheet, CUSTOMER_ID);  
  Logger.log("Processing data:" + customerData);

  // Assume first column holds the name of the customer
  var customerName = customerData[1];
  var customerCityState = customerData[2];
  SpreadsheetApp.getActiveSheet().getSheetId()
  var target = createDuplicateDocument(SOURCE_TEMPLATE, "CSMR - " + customerName + ", " + customerCityState );
  Logger.log("Created new document"); 
}

1 个答案:

答案 0 :(得分:0)

不确定我是否完全理解了您想要获得的最终结果,但这里是如何构建循环,它将为每行数据创建一个文档。

function generateMonthlyReport() {
  var data = SpreadsheetApp.getActiveSpreadsheet();
  // Fetch variable names
  // they are column names in the spreadsheet
  var sheet = data.getSheets()[0];
  var columns = getRowAsArray(sheet, 1);
  for(var customer=2;customer<sheet.getLastRow();customer++){
    Logger.log("Processing row:" + customer);
    var customerData = getRowAsArray(sheet, customer);  
    Logger.log("Processing data:" + customerData);
    // Assume first column holds the name of the customer
    var customerName = customerData[0];
    var customerCityState = customerData[2];
    SpreadsheetApp.getActiveSheet().getSheetId()
    //  var target = createDuplicateDocument(SOURCE_TEMPLATE, "CSMR - " + customerName + ", " + customerCityState );
    Logger.log("Created new document for customer "+customer+' ctitle = CSMR - ' + customerName + ', ' + customerCityState); 
  }
}

function getRowAsArray(sheet, n){
  var array = [];
  var data = sheet.getRange(n,1,1,sheet.getLastColumn()).getValues();
  for(var c=0;c<data[0].length;c++){
    array.push(data[0][c]);
  }
  return array;
}

测试记录器+测试表如下: enter image description here

enter image description here