从一个工作簿导入到具有不同源单元的主工作簿

时间:2018-06-02 09:42:25

标签: google-apps-script google-sheets

Google相册中的初学者。我正在尝试将数据从一个工作簿传输到Google工作表中的一个主工作簿。我需要它在应用程序脚本中,因为它将嵌入到按钮中。不幸的是,我提出的代码没有按计划进行。

Error

Expected

这是我的代码

    function myFunction() {


 //get the date from current Spreadsheet
 // C3 J6 F10-F14
 var sourcesheet = SpreadsheetApp.getActiveSheet();
 var analyst = sourcesheet.getRange('C3');
 var analystVal = analyst.getValues();

 var finalScore= sourcesheet.getRange('J6');
 var finalScoreVal = finalScore.getValues();

 var communication= sourcesheet.getRange('F10');
 var communicationVal = communication.getValues();

 var criteria1= sourcesheet.getRange('F11');
 var criteria1Val = criteria1.getValues();

 var criteria2= sourcesheet.getRange('F12');
 var criteria2Val = criteria2.getValues();

 var criteria3= sourcesheet.getRange('F13');
 var criteria3Val = criteria3.getValues();

 var criteria4= sourcesheet.getRange('F14');
 var criteria4Val = criteria4.getValues();

 //Open new Spreadsheet & paste the data
  var megaform = SpreadsheetApp.openById("1H0v-rFqL4EKvixi5oTVJ65nTxnEzHJlPmu5SUrkgJp4");
  Logger.log(megaform.getLastRow());
  megaform.getActiveSheet().getRange(megaform.getLastRow()+1, 3).setValues(analystVal);
  megaform.getActiveSheet().getRange(megaform.getLastRow()+1, 4).setValues(finalScoreVal);
  megaform.getActiveSheet().getRange(megaform.getLastRow()+1, 5).setValues(communicationVal);
  megaform.getActiveSheet().getRange(megaform.getLastRow()+1, 6).setValues(criteria1Val);
  megaform.getActiveSheet().getRange(megaform.getLastRow()+1, 7).setValues(criteria2Val);
  megaform.getActiveSheet().getRange(megaform.getLastRow()+1, 8).setValues(criteria3Val);
  megaform.getActiveSheet().getRange(megaform.getLastRow()+1, 9).setValues(criteria4Val);

}

基本上一旦这个工作,我计划将它从多个工作簿扩展为多个工作簿到主工作簿。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

我决定将所需数据放入数组中,而不是在对象中使用名称值对。我还选择将数据作为主电子表格中的新行附加。您可以根据需要进行修改。

function getMyData() {
  var ss=SpreadsheetApp.getActive();
  var sh=ss.getSheetByName('Sheet1');
  var rg=sh.getDataRange();
  var vA=rg.getValues();
  var dtA=[vA[2][2],vA[5][9],vA[9][5],vA[10][5],vA[11][5],vA[12][5],vA[13][5]];// C3 J6 F10-F14
  var dsA=[];
  for(var i=0;i<dtA.length;i++){
    dsA.push(Utilities.formatDate(new Date(dtA[i]),Session.getScriptTimeZone(),"E MM dd, yyyy"));
  }
  appendToMasterData(dsA);
}

function appendToMasterData(dA){
  var ss=SpreadsheetApp.openById('1auR3L1hTLw_P0fSJ8MJ470nYr-rVfAxvCUCLcW9Nl20');
  var sh=ss.getSheetByName('Sheet1');
  sh.appendRow(dA)

}

资料单:

enter image description here

您的数据以浅绿色突出显示,并且都是日期。

主表:

enter image description here