2013-05-03 46 views
0

我已經看到幾個腳本列出瞭如何刪除包含空白或0的行,但是我有一個表單,並且一旦提交了響應就會輸入最後一行。該表格有必填字段,但也有不需要回答的字段。對於沒有回覆的專欄,我希望在表單提交後不要在郵件中顯示標題。如果我使用處理行的腳本,所有的信息都會被刪除。刪除空白或0的電子表格中的列

我現在的腳本是:

function sendFormByEmail(e) 
{  
var email = "[email protected]"; 
var subject = "Form Submitted"; 
var s = SpreadsheetApp.getActiveSheet(); 
var headers = s.getRange(1,1,1,s.getLastColumn()).getValues()[0];  
var message = "";  

for(var i in headers) 
message += headers[i] + ' = '+ e.namedValues[headers[i]].toString() + "\n\n"; 

MailApp.sendEmail(email, subject, message); 
} 

現在如果人填寫表單不提供響應我得到如下:

Cell Number = 

我想只得到頭在迴應和消除任何空白或「0」。

回答

1

在將響應值添加到message之前,您只需驗證您的條件。由於空白響應有時可能包含空格(因此爲「非空白」),所以首先使用.replace()方法在測試字符串之前去除任何填充。

你可以在這裏調整if語句來滿足您的需求:

function sendFormByEmail(e) 
{  
    var email = "[email protected]"; 
    var subject = "Form Submitted"; 
    var s = SpreadsheetApp.getActiveSheet(); 
    var headers = s.getRange(1,1,1,s.getLastColumn()).getValues()[0];  
    var message = "";  

    for(var i in headers) { 
    var value = e.namedValues[headers[i]] 
       .toString() 
       .replace(/(^\s+|\s+$)/g, ''); // Remove padding 
    // Only report form responses that aren't blank or 0. 
    if (value.length > 0 && value != '0') { 
     message += headers[i] + ' = '+ value + "\n\n"; 
    } 
    } 

    MailApp.sendEmail(email, subject, message); 
} 
+0

Mogsdad - 謝謝你這麼多。它完美的作品!我感謝你的幫助 - 你是搖滾明星。 – 2013-05-23 21:04:22