скрипт перезаписывает текущие данные в ячейке googlesheet - PullRequest
0 голосов
/ 07 февраля 2020

Я использую GoogleSheets . У меня есть сценарий smiple для вставки текста в ячейку.

function anotherTest() {
  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.getCurrentCell().setValue('Group:\n\nDescription:\n\nExpected Results:\n\nActual Results:\n\nTest Results:');
};

Я назначил сценарий кнопке. В googlesheets я нажимаю на ячейку, в которой должен отображаться текст, а затем нажимаю на кнопку. Текст вставляется в ячейку.

Проблема в том, что при запуске моего скрипта все, что находится в этой ячейке, перезаписывается. Я не хочу, чтобы текст был перезаписан. Как я могу предотвратить перезапись текста при запуске моего скрипта? Кроме того, как я могу указать на позицию в ячейке и вставить текст в эту позицию при запуске скрипта?

1 Ответ

0 голосов
/ 07 февраля 2020

setValue() означает, что вы устанавливаете для содержимого ячейки указанное вами значение, независимо от того, каким было предыдущее содержимое этой ячейки

Невозможно указать на определенную позицию, но если Вы хотите добавить текст в дополнение к уже существующему вместо перезаписи, вы можете изменить свой скрипт следующим образом:

function anotherTest() {
  var spreadsheet = SpreadsheetApp.getActive();
  var cell = spreadsheet.getCurrentCell();
  var oldContent = cell.getValue();
  var newContent = 'Group:\n\nDescription:\n\nExpected Results:\n\nActual Results:\n\nTest Results:';
  var space = " ";
  cell.setValue(oldContent + space + newContent);
};

Очевидно, что вы можете поиграться с порядком, например, cell.setValue(newContent + space + oldContent); также возможно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...