скрипт google-apps - циклы - PullRequest
       15

скрипт google-apps - циклы

0 голосов
/ 13 сентября 2018

У меня есть проект, над которым я работаю, чтобы читать данные с одного листа и перебирать назначенные столбцы, собирать эти данные и помещать их в шаблон, который будет загружен в объявления Google.См. Код ниже (ПРОСТАЯ ПЕТЛЯ НУЖНА СМОТРЕТЬ МОЙ КОД ДЛЯ КОММЕНТАРИЙ!).Пожалуйста, обратите внимание, что я новичок в этом, и это может выглядеть как глазная рана.Я застрял на этом какое-то время, теперь пытался буквально все, что нашел, но безуспешно.если вам нужны дополнительные вложения или уточнения, пожалуйста, дайте мне знать.

//============================================================================*
// This program is an inventory based program that will create AdGroups based *
// On your current inventory Spreadsheet on your G-Drive                      *
// ===========================================================================*
function main() {

  var feedCSVname = "FILE_NAME.csv"
  var feedSheetName = "INVENTORY SHEET"
  var TemplateURL = "SHEET_URL_HERE"
  var Template_sheetName = "TEMPLATE_SHEET_NAME"
  var push_sheetName = "Upload"
  var done = "Done"

  // ==== Parse CSV file and dump all contents to inventory sheet =========
  var feedFile = DriveApp.getFilesByName(feedCSVname).next();
  var feedData = Utilities.parseCsv(feedFile.getBlob().getDataAsString());
  var Template = SpreadsheetApp.openByUrl(TemplateURL);
  var feedSheet = Template.getSheetByName(feedSheetName);
  feedSheet.clear().getRange(1, 1, feedData.length, feedData[0].length).setValues(feedData);
  // Create a new columns "Status" so we can loop through
  feedSheet.getRange('BI1').setValue('Status');

  //==================== Feed Column Locations ============================
  var CidColumn = 2;
  var sellingPriceColumn = 10;
  var yearColumn = 13;
  var makeColumn = 14;
  var modelColumn = 15;
  var trimColumn = 16;
  var dealernameColumn = 39;
  var countofmakemodelyearColumn = 47;
  var lowest_priceColumn = 52;
  var mm_lowest_priceColumn = 53;
  var m_lowest_priceColumn = 54;
  var URL1Column = 58;
  var URL2Column = 59;
  var URL3Column = 60;
  var status = 61;
  var feedRows = 2 // Since row 1 has headers
  var lastrow = feedSheet.getLastRow();

  //======================= Feed Row Data ================================

  var sellingPrice = feedSheet.getRange(feedRows, sellingPriceColumn).getValue();
  var year = feedSheet.getRange(feedRows, yearColumn).getValue();
  var make = feedSheet.getRange(feedRows, makeColumn).getValue();
  var model = feedSheet.getRange(feedRows, modelColumn).getValue();
 
  var dealername = feedSheet.getRange(feedRows, dealernameColumn).getValue();

  var URL1 = feedSheet.getRange(feedRows, URL1Column).getValue();
  var URL2 = feedSheet.getRange(feedRows, URL2Column).getValue();
  var URL3 = feedSheet.getRange(feedRows, URL3Column).getValue();

  //==================== Write Data To Template ==========================
  // I need to loop this process
  var templateSheet = Template.getSheetByName(Template_sheetName);

  templateSheet.getRange('B2').setValue("Campaign Name");
  templateSheet.getRange('B3').setValue(make);
  templateSheet.getRange('B4').setValue(model);
  templateSheet.getRange('B5').setValue(year);
  templateSheet.getRange('D2').setValue(URL1);
  templateSheet.getRange('D3').setValue(URL2);
  templateSheet.getRange('D4').setValue(URL3);
  feedSheet.getRange(feedRows, status).setValue(done);

  // when this column and row = "Done" then go to next row


  var readStatusColumn = feedSheet.getRange(feedRows, status).getValue();
  if (readStatusColumn == done) {
    //Then go to next row loop process

  }

 
  //================ Copy all data to push sheet =========================

  //Copy contents of the Template sheet and paste to the Upload sheet
  var copyRange = templateSheet.getRange('A8:J113');
  var pushSheet = Template.getSheetByName(push_sheetName);
  var paste2pushSheet = pushSheet.getRange(pushSheet.getLastRow() + 1, 1);
  copyRange.copyTo(paste2pushSheet, {
    contentsOnly: true
  });
  //End Loop
}
...