1

我的第一個問題堆棧溢出。 我有一張Google電子表格,裏面有4張單獨的工作表。GAS - 每個GForm輸入選擇(獲取)電子表格

Sheet1是來自GForm的響應。 Sheet2,3,4有相同的數據,但有3種語言的英語,泰米爾語,印地語,並命名爲英語,泰米爾語,印地語。

目前,腳本從Sheet1中獲取單元格值日期,匹配泰米爾語言表中的數據,郵件與正確語言Tamil GDoc合併並通過電子郵件發送。

現在,我無法弄清楚如何讓腳本選擇一種不同的語言Gsheet,其中的3個,取決於來自Form輸入的evalues4,這是一個單選按鈕。

有人可以幫我弄明白嗎? 使用ss.getSheetByName和 選擇合適的語言 Gsheet使用DriveApp.getFileById 的GDoc基於Form響應evalues4。

這裏是代碼和哪些工作正常,如果我通過名稱/ sheetID/DocID輸入一種語言。

//Get information from the form and set as variables 
function onFormSubmit(e) 
{ 
var Time = e.values[0]; 
var email = e.values[1]; 
var fog = e.values[2]; 
var mog = e.values[3]; 
var lang = e.values[4]; 
var do_date = e.values[5]; 

//Match chosen date from data sheet & get Row Number 
function findInColumn() { 
var data = do_date; 
var ss = SpreadsheetApp.getActiveSpreadsheet(); 
var sheet1 = ss.getSheetByName("Tamil"); 
var range = sheet1.getRange(1,1,sheet1.getLastRow(),1); 
var values= range.getValues(); 
var row = 0; 
    while (values[row] && values[row][0] !== data) { 
    row++; 
    } 
    if (values[row][0] === data) 
    return row+1; 
    else 
    return -1; 
} 

//Use above Row number to load in Range, get values, assign to variable cells 
var ss = SpreadsheetApp.getActiveSpreadsheet(); 
var sheet3 = ss.getSheetByName("Tamil"); 
// Get range of cells in All columns and All rows with entries 
var dataRange = sheet3.getRange(findInColumn(), 1, 1, sheet3.getLastColumn()); 
// Get entries for each row in the Range. 
var data = dataRange.getValues(); 
// Set each value to a unique variable 
    for (i in data) { 
    var cell = data[i]; 

// Get document template, copy it as a new doc with Name and email, and save the id 
var copyId = DriveApp.getFileById("1Nxxxxxxxxxxxxxx2k") 
+0

如何「ss.getSheetByName (lang)「其中lang是」var lang = e.values [4]「 –

+0

您是否找到解決問題的方法? –

回答

1

對不起,完全忘了,我問過的問題在這裏。我解決了它在同一個週末,使用如果 - 其他[注:除了變種SS的我用VAR SSN,並代替VAR表Sheet 3我曾經在改寫VAR tocopyID]

//Use above Row number to load in Range, get values, assign to variable cells 
var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    if (lang === "Tamil"){ 
    var ssn = ss.getSheetByName("Tamil"); 
    var tocopyId = DriveApp.getFileById("1NxxxxTamil"); 
    } 
    else if (lang === "Hindi"){ 
    var ssn = ss.getSheetByName("Hindi"); 
    var tocopyId = DriveApp.getFileById("Hindi"); 
    } 
    else if (lang === "English"){ 
    var ssn = ss.getSheetByName("English"); 
    var tocopyId = DriveApp.getFileById("1NxxxxEnglish"); 
    } 
+0

您可以將您的答案標記爲已接受,以便此線程可能顯示爲已解決。 –

+0

完成,謝謝你通過禮儀和耐心走過我。 –

0

你可以使用你的lang變量來獲取正確的表格,因爲他們有相同的名字。像:

var sheet1 = ss.getSheetByName(lang); // where lang = "Tamil" for example 

對於使用正確的模板,您可以在模板的ID存儲與Properties這樣的:

var templateId = PropertiesService.getScriptProperties().getProperty(lang); // where lang = "Tamil" for example 
var copyId = DriveApp.getFileById(templateId); 

如果你有你想要的語言名稱設置屬性。你可以用代碼中設置它們:

PropertiesService.getScriptProperties().setProperty('Tamil', '1Nxxxxxxxxxxxxxx2k'); 
相關問題