2017-08-13 19 views
0

スプレッドシートのセル「B2」に特定の値が見つかったら、HTMLフォームのチェックボックスが自動的にチェックされます。今度はコードを変更して、B2からB8までの範囲の値を取得し、複数のチェックボックスをチェックしたいのですが、どうすればいいでしょうか?あなたの参照のためhereは私のスプレッドシートへのリンクです。スプレッドシートのセルの値に基づいてhtmlformのチェックボックスを自動的にチェックする

答えて

1

私がチェックボックスのチェックを取得するために働いていました。範囲b2:b8は必要以上に大きかったので、このコードはその範囲内のセルで1〜4の値を受け入れます。コードはすでに共有スプレッドシートにインストールされています。

Code.gs

function onOpen() { 
    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(); 

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

     if(form["name1"] === "1") 
     { 
     var delta = "1" 
     sheet.getRange(i+1, 2).setValue(delta) 
     }  


     } 
    } 

Logger.log(form); 

} 

function getValues(){ 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sheet = ss.getSheetByName("Sheet1"); 
    var vA=sheet.getRange('B2:B8').getValues(); 
    return vA; 
} 

Index.htmlと:

<!DOCTYPE html> 
<html> 
<head> 
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
</head> 
<body> 
<h1>Add Row To Spreadsheet</h1><br /> 
<form id='myForm'> 
<table cellpadding="0" cellspacing="0" border="0"> 
<tbody> 
    <tr> 
     <td></td> 
     <td><input type="checkbox" name="name1" id="name1" value="1"/>Product Landing pages</td> 
     <td><input type="checkbox" name="name2" id="name2"/>Missing Attributes</td> 
     <td><input type="checkbox" name="name3" id="name3"/>Duplicate Titles</td> 
     <td><input type="checkbox" name="name4" id="name4"/>Merchant Promotions</td> 
    </tr> 
</tbody> 
</table> 
    <br><br> 
     <input type="button" value="Submit" onclick="google.script.run 
       .withSuccessHandler(google.script.host.close) 
       .itemAdd(this.parentNode)" /> 
</form> 

<script> 
$(function() { 
     google.script.run.withSuccessHandler(checkDefault).getValues(); 
     }); 
    function checkDefault(val) 
    { 
    for(i=0;i<val.length;i++) 
    { 
     if(val[i]==1 || val[i]==2 || val[i]==3 || val[i]==4) 
     { 
     var checkBoxName = "name"+val[i]; 
     document.getElementById(checkBoxName).checked = true; 
     } 
    } 

    } 
    console.log('My Code'); 

</script> 
</body> 
</html> 
+0

私が試したが、それは、チェックボックスをチェックしません。 – Mask

+0

私はシート名を変更しました。 – Cooper

+0

乾杯!それは私が必要とするように動作します。ありがとうクーパー。 – Mask

関連する問題