Как сделать скрипт в GAS, который создаст кнопку или ее эквивалент в Google Sheet? - PullRequest
1 голос
/ 15 октября 2019

У меня есть лист Google с переменным количеством данных, до 1000 строк. Я хочу сделать скрипт, который будет создавать кнопки в электронной таблице для каждой строки данных. Каждая кнопка будет запускать сценарий, который будет принимать значения из диапазона в строке, в которой находится кнопка, и применять их к шаблону Google Docs.

У меня возникли проблемы с созданием кнопок со сценарием ипередавая аргументы скрипту, чтобы он использовал правильную строку для каждого.

Это вообще возможно, или мне лучше сделать одну кнопку и изменить скрипт, чтобы он проходил по каждой строке и создавал все документы за один раз?

1 Ответ

1 голос
/ 15 октября 2019

Вы не можете создавать программные орехи программно, но вы можете сделать это с помощью флажков.

В сочетании с триггером onEdit вы можете реализовать, что каждый щелчок флажка будет извлекать строку, в которойфлажок расположен и будет принимать эту строку в качестве параметра функции.

Пример:

var checkBoxColumn=5;

function initialSetup(){
 var sheet=SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
 var lastRow=sheet.getLastRow()
 var range=sheet.getRange(1, checkBoxColumn, lastRow);

 // insert a checkbox in every row
 var enforceCheckbox = SpreadsheetApp.newDataValidation();
 enforceCheckbox.requireCheckbox();
 enforceCheckbox.build();
 range.setDataValidation(enforceCheckbox).setValue("FALSE")
}  

function onEdit(e) {
 if(e.range.getColumn()==checkBoxColumn&&e.range.getValue()==true){
   var row=e.range.getRow();
   copyData(row);
 }
}

function copyData(row){
 Logger.log("The checkbox was clicked in row "+row);
 // do whatever you want with this row
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...