我有多张表(同一工作簿)中的记录列表。 我目前在googlesheet中有一个下拉菜单,如果你选择其中一个记录,它将删除该记录的行。 但是,我想提供将其移动到另一个工作表或删除它的选项。我试图使用UiApp,但后来发现很多选项已被弃用,现在我必须使用HTMLService。 所以我要做的是,一旦我选择了一个记录,就有一个有两个选项的弹出窗口。 选项1:移动选项(按钮),其中包含工作簿中其他工作表的名称下拉列表,然后将该记录移动到该工作表 选项2:删除记录 选项3:取消。
这可能吗?如果是这样,有人能指导我到正确的方向或类似的例子,所以我可以尝试找出如何实现这一目标吗?
提前谢谢你们!
答案 0 :(得分:0)
您可以尝试创建Custom dialogs
自定义对话框可以在Google文档,表格或表单编辑器中显示HTML服务用户界面。
在对话框打开时,自定义对话框不会挂起服务器端脚本。客户端组件可以使用用于HTML服务接口的google.script API或用于UI服务接口的服务器处理程序对服务器端脚本进行异步调用。
Code.gs
function onOpen() {
SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
.createMenu('Custom Menu')
.addItem('Show dialog', 'showDialog')
.addToUi();
}
function showDialog() {
var html = HtmlService.createHtmlOutputFromFile('Page')
.setWidth(400)
.setHeight(300);
SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
.showModalDialog(html, 'My custom dialog');
}
page.html中
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
<select>
<option>Delete</option>
<option>Move</option>
</select>
</body>
</html>
有了这个,请尝试阅读HTML Service: Communicate with Server Functions
google.script.run
是一个异步客户端JavaScript API,允许HTML服务页面调用服务器端的Apps脚本功能。以下示例显示了来自客户端JavaScript的google.script.run
- calling a function on the server的最基本功能。
以下是表单的示例代码:
<!DOCTYPE html>
<html>
<head>
<base target="_top">
<script>
// Prevent forms from submitting.
function preventFormSubmit() {
var forms = document.querySelectorAll('form');
for (var i = 0; i < forms.length; i++) {
forms[i].addEventListener('submit', function(event) {
event.preventDefault();
});
}
}
window.addEventListener('load', preventFormSubmit);
function handleFormSubmit(formObject) {
google.script.run.withSuccessHandler(updateUrl).processForm(formObject);
}
function updateUrl(url) {
var div = document.getElementById('output');
div.innerHTML = '<a href="' + url + '">Got it!</a>';
}
</script>
</head>
<body>
<form id="myForm" onsubmit="handleFormSubmit(this)">
<input name="myFile" type="file" />
<input type="submit" value="Submit" />
</form>
<div id="output"></div>
</body>
</html>
希望这有帮助!