我想拥有一个由工作簿中所有可用工作表组成的ui对话框,让用户选择他们要操作的工作表,并将值返回给脚本进行处理。
我将工作表名称收集到一个数组中,并希望将它们显示在一个下拉列表框中以供选择。有人可以指出我的文档来做到这一点吗?
答案 0 :(得分:2)
以下是绑定到电子表格的脚本示例。对于网络应用程序,情况将与此类似。
在Code.gs中
function test() {
try {
var output = HtmlService.createHtmlOutputFromFile('HTML_Sidebar');
SpreadsheetApp.getUi().showSidebar(output);
}
catch(err) {
Logger.log(err);
}
}
function getSheets() {
try {
var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
var names = [];
for( var i=0; i<sheets.length; i++ ) {
names.push(sheets[i].getName());
}
return names;
}
catch(err) {
Logger.log(err);
}
}
function changeSheet(name) {
try {
var spread = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spread.getSheetByName(name);
SpreadsheetApp.getActiveSpreadsheet().setActiveSheet(sheet);
}
catch(err) {
Logger.log(err);
}
}
在HTML_Sidebar中
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
<select id="mySelect" onchange="selectChange(this)">
</select>
<script>
function selectChange(select) {
google.script.run.changeSheet(select.value);
}
function sheetNames(names) {
var select = document.getElementById("mySelect");
for( var i=0; i<names.length; i++ ) {
var option = document.createElement("option");
option.text = names[i];
select.add(option);
}
}
(function () { google.script.run.withSuccessHandler(sheetNames).getSheets(); }());
</script>
</body>
</html>