我使用的是谷歌电子表格,想要创建一个带有多个复选框和按钮的侧边栏菜单。选中选择1或单击复选框,然后用户按Enter键时,复选框中的值应显示在电子表格中的选定单元格中。
有一种输入类型的复选框:
<form action="">
<input type="checkbox" name="myCategory" value="Yes">I like toast<br>
<input type="checkbox" name="myCategoryTwo" value="No">Don't like toast
</form>
gs代码
function onOpen() {
SpreadsheetApp.getUi()
.createMenu('Custom Menu')
.addItem('Show sidebar', 'showSidebar')
.addToUi();
};
gs"要创建的服务器代码"对话框
function showSidebar() {
Logger.log('showSidebar ran: ' );
var html = HtmlService.createTemplateFromFile('Dialog')
.evaluate()
.setSandboxMode(HtmlService.SandboxMode.IFRAME)
.setTitle('My custom sidebar')
.setWidth(300);
SpreadsheetApp.getUi()
.showSidebar(html);
}
HTML
<div>
<form action="">
<input id="idYesChk" type="checkbox" name="myCategory" value="Yes">I like toast<br>
<input type="checkbox" name="myCategoryTwo" value="No">Don't like toast
</form>
<input type="text">
<input type='button' value="Update Spreadsheet" onclick='fncCallServerToDoSomething()'>
</div>
<script>
function fncCallServerToDoSomething() {
console.log('fncCallServerToDoSomething ran!');
var aReturnedValue = document.getElementById("idYesChk").value;
console.log("value of check box: " + aReturnedValue);
google.script.run
.withFailureHandler(onFailure)
.gsFunctionToRun(aReturnedValue);
//google.script.host.close();
};
function onFailure(error) {
console.log(error.message);
};
</script>
gs代码将值写入电子表格
将价值投入活动单元格
function gsFunctionToRun(argValueRetrieved) {
Logger.log('argValueRetrieved: ' + argValueRetrieved);
var ss = SpreadsheetApp.getActiveSpreadsheet();
var theSheet = ss.getActiveSheet();
var activeCell = ss.getActiveCell().getA1Notation();
var theRange = theSheet.getRange(activeCell);
theRange.setValue(argValueRetrieved);
};
将值放入指定的范围(单元格)
function gsFunctionToRun(argValueRetrieved) {
Logger.log('argValueRetrieved: ' + argValueRetrieved);
var ss = SpreadsheetApp.getActiveSpreadsheet();
var theSheet = ss.getActiveSheet();
var theRange = theSheet.getRange("B4");
theRange.setValue(argValueRetrieved);
};