2016-12-02 30 views
1

我写的小脚本显示下面创建从Google Sheets数据MS Word文件。如果别无他在谷歌工作的脚本

我添加了一条if-else语句来防止脚本从一开始就为每一行创建一个文档;但是,该脚本仅运行else条件中的代码。请帮我找出我要出错的地方。

function createDocFromSheet() { 
    // get template file id: 
    var templateid = "1yi0zKDyPYB2yL2-OFOp-lAUKXHmJaJjm0iKLg5uhjyU"; 
    // folder name of where to put completed diaries: 
    var FOLDER_NAME = "0B8tUkeXcIHUuMXZEcDU0OXRsVTQ"; 
    // get the data from an individual user: 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sheet = ss.getActiveSheet(); 
    var data = sheet.getRange(2, 1, sheet.getLastRow(), sheet.getLastColumn()).getValues(); 

    for (var row = 2; row <=data.length; row++) { 
     var roll = sheet.getRange(row, 1).getValue(); 
     var studentName = sheet.getRange(row, 2).getValue(); 
     var fatherName = sheet.getRange(row, 3).getValue(); 
     var dob = sheet.getRange(row, 4).getValue(); 
     var transID = sheet.getRange(row, 5).getValue(); 
     var email = sheet.getRange(row, 6).getValue(); 
     var status = sheet.getRange(row, 7).getValue(); 

     if (status = null) { 
      //creating document 
      var docid = DriveApp.getFileById(templateid).makeCopy(roll).getId(); 
      var doc = DocumentApp.openById(docid); 
      var body = doc.getBody(); 
      body.replaceText("<roll-no>", roll); 
      body.replaceText("<student-name>", studentName); 
      body.replaceText("<father’s-name>", fatherName); 
      body.replaceText("<dob>", dob); 
      body.replaceText("<trans-id>", transID); 
      doc.saveAndClose(); 
     } 
     else { 
      Logger.log("status not null"); 
     } 
    } 
} 
+0

可能的[Google Apps Script有条件的If/Else If语句脚本]重复(http://stackoverflow.com/questions/20404002/google-apps-script-conditional-if-else-if-声明) – jonhopkins

回答

1

将其更改为:

if (status === null){ 

甚至

if (status == null) { 

这可能是更好的选择,因为我想着它。 One =不够用

+0

两者都试过。它仍在运行其他语句。 – Himanshu

+0

工作!替换为==“”。谢谢。 – Himanshu

+0

因此,您所在的细胞中有一个空间吗?请注意,一些公式也会返回一个空文本项目。例如'= IF(true_test,“”,0)“,作为第二种变化,可以更好地写为'= IF(true_test,,0)',使单元格保持空白。 –