Подтвердить что ты не робот

Как создать пользовательские сочетания клавиш для функций google app script?

Я пытаюсь понять, как можно заменить некоторые из моих электронных таблиц Microsoft Excel с помощью электронных таблиц Google Doc. Как создать пользовательскую комбинацию клавиш для функции google app script в таблице документов Google? Это то, что я обычно делаю с VBA и Excel.

4b9b3361

Ответ 2

Как говорит @Arun, это пока не поддерживается. Смотрите и представьте эту issue.

Ответ 3

Решение опубликовано в вопрос 306! Для ленивых, вот он:

Новый режим IFRAME в HtmlService позволяет передавать коды ключей в надстройки...

$(document).keydown(function(e){
  //CTRL + V keydown combo
  if(e.ctrlKey && e.keyCode == 86){
    $( '#output' ).html("I've been pressed!");
  }
})

Нужно сначала нажать/активировать боковую панель, чтобы это произошло.

Ответ 4

Просто обновление, теперь возможно обходное решение, которое Гай упомянул, через IFRAME, вы можете создать боковую панель, STUB только для ввода команд клавиатуры, обработки их с помощью jquery и запускать соответствующую функцию, используя это уже.

Ответ 5

Одной из возможных задач для этого было бы выделение столбца для "триггерного текста", определение различных триггеров на основе текста для каждого действия, которое вы пытаетесь выполнить, а затем создать функцию, которая проверяет значение и выполняет действие, основанное на действии на "триггерном тексте". Затем вы можете установить триггер события onEdit в триггерах проекта в разделе "Ресурсы" в редакторе script для вашей функции горячих клавиш.

Самым большим недостатком этого подхода является то, что он (по крайней мере, для меня) занимает приблизительно 7 полных секунд для триггера onEdit, чтобы поймать изменение и выполнить обновление. Если вам нужно что-то обрабатывать быстрее, вам, возможно, придется искать альтернативный подход.

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

/*you will need to add an onEdit trigger to your project 
  for this to run when you edit the cell*/


//function to update row color using entered text in a specified "trigger" column

function hotKey(){ 

  //get the cell you edited and the associated column and row number
  var cell = sheet.getActiveCell(); 
  var thisCol = cell.getColumn(); 
  var thisRow = cell.getRow(); 

  //set a range variable for the entire row
  var colorRow = sheet.getRange(thisRow,thisCol,1,Cols); 

  //get the edited value for the cell as a string
  var val = cell.getValue().toString(); 

  //check that the edited cell is in the trigger column
  if (thisCol = 1){

    //update the row color based on the entered value 
    if(val == "g"){ 
      colorRow.setBackground("#00ff00"); //sets row color to green
      cell.clearContent(); //delete the trigger cell value

    }else if(val == "r"){
      colorRow.setBackground("#ff0000");
      cell.clearContent();
    }else if(val == "fd"){
      colorRow.setBackground("#fff2cc");
      cell.clearContent();
    }else if(val == "pr"){
      colorRow.setBackground("#ffff00");
      cell.clearContent();
    }else if(val == "cn"){
      colorRow.setBackground("#6fa8dc");
      cell.clearContent();
    }
  }
}

Ответ 6

Я борюсь с подобной проблемой, и, тем не менее, я еще не получил много разрешений. Я думаю, что путь вперед можно найти через этот обработчик события нажатия Текстовое поле класса

Я не знаю, затронуло ли это проблему на стороне сервера только то, что указал Арун, но я уверен в этом. Пожалуйста, не стесняйтесь исправить мои рассуждения, прежде чем тратить слишком много времени на это!:)

Ответ 7

Короче говоря: напишите html-службу, которая использует обработчик события нажатия клавиши для захвата событий нажатия клавиш и сравнивает их с ярлыками горячих клавиш, которые вы хотите, а затем вызывает соответствующую подпрограмму на стороне сервера в приложениях script для встраивания вызываемого для нажатия клавиш, изменения формата или документа.

Что касается жизнеспособности, не так просто, как vba, с которым вы уже знакомы, но как только вы пройдете другой способ делать что-то не так уж и тяжело.