Google Scripts模板填写

时间:2018-03-28 00:01:41

标签: google-apps-script google-sheets file-copying

我已设法使用Google表单回复填充我需要的模板,甚至制作所述文件的副本并使用特定名称保存。所有这一切都由表格上的“提交”按钮触发。

问题如下: 当我直接从Scrip编辑器运行脚本时,它运行得很好。 但是当我填写表单作为测试时,在脚本创建模板副本之前不会填充所有单元格。

¿如何在脚本复制之前确保填充所有需要的单元格?

或者,我如何先制作模板的副本,然后使用表单回复填充副本?

这是我的代码:

function Copy() 
{
//Modify template 
// Source sheet
 var RespID = SpreadsheetApp.openById('SOURCEID');

//Source Sheet tab name
 var FORM = RespID.getSheetByName('Form Responses 1');

 //Destination Sheet
 var TEMP = SpreadsheetApp.openById('DESTINATIONID');

 //Destination Sheet tab name
 var MPFO = TEMP.getSheetByName('MPFO');

// POPULATE TEMPLATE

 //VARIABLES

 var lastRow = FORM.getMaxRows();
 var LR = FORM.getLastRow();
 var NAME = FORM.getRange('C' + ":" + 'C' + LR).getValue();  
 var PLNT = FORM.getRange('D' + ":" + 'D' + LR).getValue();  
 var DATE = FORM.getRange('E' + ":" + 'E' + LR).getValue();  
 var AREA = FORM.getRange('F' + ":" + 'F' + LR).getValue();  
 var MACH = FORM.getRange('G' + ":" + 'G' + LR).getValue();  
 var STAT = FORM.getRange('H' + ":" + 'H' + LR).getValue();  
 var SAPN = FORM.getRange('I' + ":" + 'I' + LR).getValue();  
 var MANF = FORM.getRange('J' + ":" + 'J' + LR).getValue();  
 var IMPA = FORM.getRange('K' + ":" + 'K' + LR).getValue();  
 var PPPP = FORM.getRange('L' + ":" + 'L' + LR).getValue();  
 var PROB = FORM.getRange('M' + ":" + 'M' + LR).getValue();  
 var PROD = FORM.getRange('N' + ":" + 'N' + LR).getValue();  
 var PROI = FORM.getRange('O' + ":" + 'O' + LR).getValue();   
 var SOLD = FORM.getRange('P' + ":" + 'P' + LR).getValue();  
 var SOLI = FORM.getRange('Q' + ":" + 'Q' + LR).getValue();  

 var FNAM = FORM.getRange('R' + ":" + 'R' + LR).getValue();  
 var KEYW = FORM.getRange('S' + ":" + 'S' + LR).getValue();  
 var MPIN = MPFO.getRange('O3').getValue();                

    if (IMPA == "Rel"){ MPFO.getRange('C8').setValue("X"); } 
    else if (IMPA == "QUa") { MPFO.getRange('C10').setValue("X"); }
    else if (IMPA == "Ope") { MPFO.getRange('C12').setValue("X"); }
    else if (IMPA == "Mai") { MPFO.getRange('F8').setValue("X"); }
    else if (IMPA == "Cos") { MPFO.getRange('F10').setValue("X"); }
    else if (IMPA == "Sen") { MPFO.getRange('F12').setValue("X"); }

    if (PILL == "S"){ MPFO.getRange('I8').setValue("X"); } 
    else if (PILL == "F") { MPFO.getRange('I10').setValue("X"); }
    else if (PILL == "A") { MPFO.getRange('I12').setValue("X"); }
    else if (PILL == "W") { MPFO.getRange('K8').setValue("X"); }
    else if (PILL == "P") { MPFO.getRange('K10').setValue("X"); }
    else if (PILL == "Q") { MPFO.getRange('K12').setValue("X"); }    
    else if (PILL == "L") { MPFO.getRange('M8').setValue("X"); }
    else if (PILL == "E") { MPFO.getRange('M10').setValue("X"); }
    else if (PILL == "N") { MPFO.getRange('M12').setValue("X"); }    

    if (PROB == "Pla"){ MPFO.getRange('P7').setValue("X"); } 
    else if (PROB == "Bas") { MPFO.getRange('P9').setValue("X"); }
    else if (PROB == "Det") { MPFO.getRange('P11').setValue("X"); }
    else if (PROB == "Con") { MPFO.getRange('P13').setValue("X"); }
    else if (PROB == "Ins") { MPFO.getRange('R7').setValue("X"); }
    else if (PROB == "Tri") { MPFO.getRange('R9').setValue("X"); }    
    else if (PROB == "Fin") { MPFO.getRange('R11').setValue("X"); }
    else if (PROB == "Dur") { MPFO.getRange('R13').setValue("X"); }

 MPFO.getRange('B3').setValue(NAME);
 MPFO.getRange('F3').setValue(PLNT);
 MPFO.getRange('K3').setValue(DATE);
 MPFO.getRange('B5').setValue(AREA);
 MPFO.getRange('E5').setValue(MACH);
 MPFO.getRange('J5').setValue(STA);
 MPFO.getRange('O5').setValue(SAPN);
 MPFO.getRange('Q5').setValue(MANF);
 MPFO.getRange('A49').setValue(PROD);
 MPFO.getRange('K49').setValue(PROI);


MPFO.getRange('Q62').setValue("");
MPFO.getRange('Q62').setValue("");

// COPY OF WORKSHEET

 var COPYS = 'TEMPLATEID';
 var workingCopy = DriveApp.getFileById(COPYS).makeCopy();
 var workingFileID = workingCopy.getId();
 var tempID = SpreadsheetApp.openById(COPYS);

//Set the file name of the copy file

 var fileNameToUse = MPIN + " - " + FNAM + " - " + KEYW;

 workingCopy.setName(fileNameToUse);

0 个答案:

没有答案