Как установить значение ячейки в Google Sheets с помощью Apps Script?

134

Я хочу установить текст или число в Google Sheet из скрипта.

Я хочу установить Helloили пронумеровать 9в ячейке F2. Я нашел этот код до сих пор:

SpreadsheetApp.getActiveRange().setValue('hello');

но это не указывает, какая ячейка.

Антенны
источник
4
Могу я предложить вам прочитать основы работы с приложениями, попробовав эти руководства?
Serge insas 04

Ответы:

214

Следующий код делает то, что требуется

function doTest() {
  SpreadsheetApp.getActiveSheet().getRange('F2').setValue('Hello');
}
megabyte1024
источник
2
как getRange с числами? каковы координаты ячейки c2?
JuanPablo
5
C2 - вторая строка третьего столбца, поэтому >> getRange (2,3) >> getRange (row, col)
Serge insas
Привет. Теперь вы, как получить текущую строку ячейки и номер столбца? Как я могу установить значение для текущей ячейки?
Чарльз Чоу
@CharlesChow, извините, но я больше не участвую в разработке GAS. См. Этот и этот пункты справки. Думаю, они могут помочь.
megabyte1024
1
@CharlesChow. Вы можете использовать SpreadsheetApp.getActiveSheet (). GetActiveCell (). GetRow () и SpreadsheetApp.getActiveSheet (). GetActiveCell (). GetColumn ()
Августин С.
42

Используйте setValueметод Rangeкласса, чтобы установить значение конкретной ячейки.

function storeValue() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  // ss is now the spreadsheet the script is associated with
  var sheet = ss.getSheets()[0]; // sheets are counted starting from 0
  // sheet is the first worksheet in the spreadsheet
  var cell = sheet.getRange("B2"); 
  cell.setValue(100);
}

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

var cell = sheet.getRange(2, 3); // here cell is C2

Также возможно установить значение сразу для нескольких ячеек.

var values = [
  ["2.000", "1,000,000", "$2.99"]
];

var range = sheet.getRange("B2:D2");
range.setValues(values);
Судо Бэнгбэнг
источник
16

Решение : SpreadsheetApp.getActiveSheet().getRange('F2').setValue('hello')

Пояснение:

Установка значения в ячейке электронной таблицы, к которой прикреплен скрипт

SpreadsheetApp.getActiveSpreadsheet().getSheetByName(SHEET_NAME).getRange(RANGE).setValue(VALUE);

Установка значения в ячейке на листе, которая открыта в данный момент и к которой прикреплен скрипт

SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(RANGE).setValue(VALUE);

Установка значения в ячейке в некоторой электронной таблице, к которой НЕ прикреплен скрипт (известно имя целевого листа)

SpreadsheetApp.openById(SHEET_ID).getSheetByName(SHEET_NAME).getRange(RANGE).setValue(VALUE);

Установка значения в ячейке в какой-либо электронной таблице, к которой НЕ прикреплен скрипт (известна позиция конечного листа)

SpreadsheetApp.openById(SHEET_ID).getSheets()[POSITION].getRange(RANGE).setValue(VALUE);

Это константы, вы должны сами их определить

SHEET_ID

SHEET_NAME

POSITION

VALUE

RANGE

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

Умайр Мохаммад
источник