Last active
June 6, 2021 04:50
-
-
Save h8nor/0f6e1bb25b07f861dc8bec72104a864e to your computer and use it in GitHub Desktop.
sender form Google Apps Script, ex. https://codd-wd.ru/shpargalka-dopolneniya-dlya-google-tablic-spreadsheets-i-ispolzovanie-google-apps-script/#p10
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Открытие сайдбара | |
function showSidebar() { | |
// Подключаем Bootstrap | |
let sidebarHTML = '<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">'; | |
// Создаём форму - без jquery | |
sidebarHTML += '<form style="padding: 20px;text-align:center;">\ | |
<div class="form-group">\ | |
<label for="name">Имя</label>\ | |
<input type="text" class="form-control" id="name" name="name" value="">\ | |
</div>\ | |
<div class="form-group">\ | |
<label for="abrakadabra">Какая-то абракадабра</label>\ | |
<textarea class="form-control" id="abrakadabra" name="abrakadabra" rows="3"></textarea>\ | |
</div>\ | |
<div class="form-group">\ | |
<label for="strNum">Номер строки, в которую необходимо внести данные</label>\ | |
<input type="text" class="form-control" id="strNum" name="strNum" value="1">\ | |
</div>\ | |
<button type="submit" class="btn btn-primary">Записать данные в таблицу</button>\ | |
<br><br><br>\ | |
<button type="button" id="sidebarClose" class="btn btn-danger">Закрыть сайдбар</button>\ | |
</form>'; | |
// Добавляем скрипты | |
// При сабмите формы вызываем функцию writeStrInTable() и передаём ей введённые данные | |
//developers.google.com/apps-script/guides/html/reference/run | |
// При клике на кнопку 'Закрыть сайдбар' закрываем его | |
//developers.google.com/apps-script/guides/html/reference/host#close() | |
sidebarHTML += "<script>\ | |
document.querySelector('form').addEventListener('submit', function () {\ | |
event.preventDefault();\ | |
google.script.run\ | |
.withSuccessHandler(function (resultMsg) {\ | |
console.info(resultMsg);\ | |
})\ | |
.writeStrInTable({\ | |
name: getElement('name').value,\ | |
abrakadabra: getElement('abrakadabra').value,\ | |
strNum: getElement('strNum').value\ | |
});\ | |
});\ | |
\ | |
const sbс = document.getElementById('sidebarClose');\ | |
sbс.addEventListener('click', function() {\ | |
google.script.host.close();\ | |
});\ | |
\ | |
function getElement(id) {\ | |
return document.getElementById(id);\ | |
}\ | |
</script>"; | |
const htmlOutput = HtmlService.createHtmlOutput(sidebarHTML) | |
.setTitle('My add-on'); | |
//developers.google.com/apps-script/reference/base/ui#showsidebaruserinterface | |
SpreadsheetApp.getUi() | |
.showSidebar(htmlOutput); | |
} | |
function writeStrInTable(e) { | |
const { name, abrakadabra } = e, | |
strNum = parseInt(e.strNum); | |
// Получаем объект с активной (открытой в данный момент) таблицей | |
let ss = SpreadsheetApp.getActiveSpreadsheet(); | |
let sheet = ss.getActiveSheet(); | |
// Записываем полученные данные в таблицу | |
sheet.getRange("A" + strNum).setValue(name); | |
sheet.getRange("B" + strNum).setValue(abrakadabra); | |
return "Data has been submitted to the Google Table"; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment