#google-apps-script #google-sheets
#google-apps-script #google-sheets
Вопрос:
Я пытаюсь создать таблицу расписания, в которой один из трех цветов будет представлять то, что происходит на объекте. Для простоты заполнения я бы хотел, чтобы пользователь мог выбрать диапазон ячеек, а затем щелкнуть соответствующую цветную ячейку в легенде, чтобы применить этот цвет к выбранному диапазону.
Комментарии:
1. Это было бы довольно легко сделать на боковой панели.
2. Вы имеете в виду с помощью условного форматирования? К сожалению, способ настройки этого листа, в ячейках нет данных для форматирования. Тот факт, что они выбраны, — это единственный способ, которым они отличаются от соседних ячеек.
Ответ №1:
Попробуйте это:
Просто запустите setColorFromSidebar(), и это создаст боковую панель с четырьмя кнопками на ней. Затем выберите диапазон и нажмите одну из кнопок. Поместите обе функции в Code.gs досье.
function setColorFromSidebar() {
var ss=SpreadsheetApp.getActive();
var html='<input type="button" value="Red" onClick="setBackground('#ff0000');" />';
html ='<br /><input type="button" value="Green" onClick="setBackground('#00ff00');" />';
html ='<br /><input type="button" value="Blue" onClick="setBackground('#0000ff');" />';
html ='<br /><input type="button" value="White" onClick="setBackground('#ffffff');" />';
html ='<script>function setBackground(color) { google.script.run.setBackGround(color);}</script>';
var userInterface=HtmlService.createHtmlOutput(html);
SpreadsheetApp.getUi().showSidebar(userInterface);
}
function setBackGround(color) {
var ss=SpreadsheetApp.getActive();
var sh=ss.getActiveSheet();
var rg=sh.getActiveRange();
rg.setBackground(color);
}
Комментарии:
1. Спасибо! Это отлично работает! Есть какие-либо рекомендации о том, как сохранить боковую панель активной при открытии / закрытии? Я не хочу, чтобы пользователям приходилось копаться в меню, чтобы включить его (в противном случае они могли бы просто нажать на корзину для рисования. ;))
2. Загрузите его в openopen(). На самом деле это не меняет никаких данных, поэтому я не думаю, что какие-либо разрешения задействованы, но я не уверен.