2017-07-29 107 views
3

我想通過匹配一些值來將一些數據以html表格的形式添加到電子表格中。提交表單數據到谷歌電子表格

但不知何故提交按鈕什麼也不做。

Code.gs --->

function openInputDialog() { 
    var html = HtmlService.createHtmlOutputFromFile('Index').setSandboxMode(HtmlService.SandboxMode.IFRAME); 
    SpreadsheetApp.getUi() 
     .showModalDialog(html, 'Add Item'); 
} 

function itemAdd(form) { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sheet = ss.getSheetByName("Sheet1"); 
    var lastRow = sheet.getLastRow(); 
    var match1 = sheet.getRange("B2").getValue(); 


    for (var i = 0; i = 300; i++) 

    { 
     if (lastRow - i == match1) { 
      sheet.getRange(lastRow - i, 2, 1, 1).setValues(form.details); 
      break; 
     } 

    } 
} 

的index.html ----->

<!DOCTYPE html> 
<html> 

<head> 
    <base target="_top"> 
</head> 
<br> 
<form> 
    Details:<br> 
    <input type="text" name="details"> 
    <br> Quantity: 
    <br> 
    <input type="text" name="quantity"> 
    <br><br> 
    <input type="button" value="Submit" onclick="google.script.run 
      .withSuccessHandler(google.script.host.close) 
      .itemAdd(this.parentNode)" /> 
</form> 

</html> 

我會很感激你的幫助。

+0

你可以分享你的電子表格的副本 – Ritz

+0

[鏈接](https://docs.google.com/spreadsheets/d/ 1wSrOwjRcmMsFkACmJTHPE3qJxCLCUW9rwQtvv3PEjDA/edit?usp = sharing)這裏是我的電子表格的鏈接。 – Mask

回答

1

試試這個....更換itemAdd功能

function itemAdd(form) { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sheet = ss.getSheetByName("Sheet1"); 
    var lastRow = sheet.getLastRow(); 
    var match1 = sheet.getRange("B2").getValue(); 

    var dataRange = sheet.getRange(1, 1,lastRow).getValues(); 
    for(var i=0;i<dataRange.length;i++){ 
     if(dataRange[i][0] == match1){ 
      sheet.getRange(i+1, 2).setValue(form.details) 
     } 
    } 

} 
+1

非常感謝你們它工作順利。真的很感謝你爲解決我的問題所做的努力。溫暖的問候。 – Mask

1

我認爲這會對你有用。

<!DOCTYPE html> 
<html> 

<head> 
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
    <script> 
    function localItemAdd() 
    { 
     var i1=$('#d').val();//it is helpful to use intermediate values when debugging new code 
     var i2=$('#q').val(); 
     var A={}; 
     A['details']=i1; 
     A['quantity']=i2; 
     google.script.run.itemAdd(A); 
    } 
    console.log('My Code'); //this make it easier to find your code in the debugger console 
    </script> 
</head> 
<body> 

    Details:<br><input id="d" type="text" name="details" /> 
    <br> Quantity:<br><input id="q" type="text" name="quantity" /> 
    <br><br><input type="button" value="Submit" onclick="localItemAdd();google.script.host.close();" /> 
</body> 
</html> 
+0

恩,感謝您的支持。然而,這並不能解決代碼應該從單元格「B2」獲得值的目的,然後在單元格「A6」中循環和匹配(如果找到),然後將表單值(form.detail)粘貼到單元格「B6」中 – Mask