2013-07-31 114 views
1

這是我第一次發佈這樣容忍我,如果我離開任何關鍵的細節了。谷歌腳本製作格式化電子表格

總之,要總結的問題:我一直在試圖讓一個腳本在谷歌腳本商合作,以格式是迷上了一個形式的電子表格,直來直去我的電子郵件。

所以基本上用戶 - >表格 - >我的電子郵件

的問題是相當標準:

  1. 什麼問題?
  2. 你在哪裏位於

然而,一個問題,我想用的是「這是什麼問題的優先級?」高或低。我有多種選擇格式,所以它是一個簡單的選擇。

僞代碼,因爲我想要的東西:

if (priority = low) put #priority low onto the email 

夠簡單,但我似乎無法得到它的工作,這是我的代碼:

function sendFormByEmail(e) 
{  
    // Remember to replace XYZ with your own email address 
    var email = "email"; 

    var subject = "Help Desk Form Submitted"; 

    var s = SpreadsheetApp.getActiveSheet(); 
    var headers = s.getRange(1,1,1,s.getLastColumn()).getValues()[0];  
    var message = ""; 
    var priority = ""; 

    if(message.indexOf("What is the priority of this problem? =   Low")){ 
     priority += "#priority low"; 
    } 
    else 
     priority == "GFHHFFHAHFH "; 

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

    if (message.indexOf("What is the priority of this problem? =   Low")) 
     message += "This is a test"; 
    else 
     message += "This is not a test"; 

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

回答

0

讓我們來看看第一個實例if(message.indexOf()...。它有一些問題:

  • 幾行前,message被設置爲空字符串...所以你不會找到它的「優先級」的字符串。

  • if聲明將indexOf()作爲布爾值返回。然而,從.indexOf()返回代碼是-1當物品沒有找到,這是「真正的十歲上下的」。如果找到字符串IS,並且位於搜索主題的開頭,則返回將是0,即「false-ish」。如果在任何其他位置發現它,值將是`> 0',也是「真正的」。

  • else,有一個錯字。如果您願意,比較==應該分配=+=

  • 望着周圍的代碼,這件作品看起來就像是左在從以前的版本,並且可以將其刪除。

現在看第二個實例。

  • 現在應該填入message。但是,比較仍然使用.indexOf()的錯誤布爾解釋。

  • 搜索字符串包含一批的空間...但之前通過響應循環的代碼使用製表符將「標題」與「值」分開,因此搜索將始終返回'-1'(將被解釋爲true)。

還有一些其他整理項目。你可能需要:

function sendFormByEmail(e) 
{  
    Logger.log(JSON.stringify(e)); 
    var email = Session.getEffectiveUser().getEmail(); 
    var subject = "Help Desk Form Submitted"; 
    var message = ""; 

    var s = e.range.getSheet(); // Sheet that received form response 
    var headers = s.getDataRange().getValues()[0]; 

    for (var question in headers) { 
    message += headers[question] + ' = \t\t' + e.values[question] + '\n\n'; 
    } 

    // Add text relative to the priority of the reported issue. 
    if (e.namedValues["What is the priority of this problem?"].toString() === "Low") 
    message += "This is a test"; 
    else 
    message += "This is not a test"; 

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

PS:你可以看到爲什麼它會是明智的形式保持短的問題,比如「優先級」,並留下了解釋語句是幫助文檔!

+0

我們走吧!謝謝。如果(e.namedValues [「這個問題的優先級是什麼?」]。toString()===「Low」),那麼它的工作部分是 ,這是if語句的條件重擊。我遇到的問題是將我在學習JS的過程中整合起來,同時寫下這些內容,並將Google的內容放入其中。再次感謝! – notWhoIam