Вот пример, который поможет вам понять, как отправлять значения из боковой панели на лист Google.
HTML-код:
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
<button onclick='f1()'>Update the address</button>
<!-- Create a input field to except a value form user, in this case there name -->
Your Name:
<input type="text" id="name"><br>
<!-- Create a button to send the value to the spreadsheet -->
<button onclick='sendName()'>Send Name</button>
<script>
function f1() {
google.script.run.getAddress();
}
function sendName(){
//Get the value of the input field
var name = document.getElementById("name").value
//Log the value of input field in the web browser console (usually used for debugging)
console.log(name)
//Send the value of the text field as a arugment to the server side function.
google.script.run.enterName(name)
}
</script>
</body>
</html>
В приведенном выше HTML-коде используется поле ввода для получения значений от пользователя.Вы можете получить доступ к значению поля ввода, используя методы DOM .Значение текстового поля хранится в var name
в function sendNames()
.Это передается функции скрипта google в качестве аргумента google.script.run.enterName(name)
.
Ваш скрипт google (он же код на стороне сервера)
function showSidebar(){
var html = HtmlService.createHtmlOutputFromFile('SO_sideBar_Example').setTitle('Helper').setWidth(100);
SpreadsheetApp.getUi().showSidebar(html);
}
// Sets the value of A1 cell to value entered in the input field in the side bar!
function enterName(name){
var ss = SpreadsheetApp.getActive()
var sheet = ss.getActiveSheet()
sheet.getRange("A1").setValue(name)
}
В приведенном выше коде на стороне сервера function enterName()
получает пользовательский ввод в аргумент name
, который вводится в ячейку A1.
Хорошей практикой является использование withSuccessHandler () и withFailureHandler (), как описано здесь .Для обработки успеха или неудачи кода на стороне сервера.