Вы хотите создать флажок в ячейках электронной таблицы, используя сценарии.Если мое понимание верно, как насчет этого обходного пути?К сожалению, в Class SpreadsheetApp пока нет методов для создания флажка.(Когда такие методы пытаются использовать, возникает ошибка.) Поэтому я хотел бы предложить создать его с использованием Sheets API.
Когда я увидел ConditionType
из dataValidation
, документаBOOLEAN говорит
Значение ячейки должно быть ИСТИНА / ЛОЖЬ или в списке значений условия.Поддерживается проверка данных. Отображает как ячейку флажок. ...
Из этого я мог понять, как создать флажок, используя Sheets API.Следующий скрипт является примером скрипта.Это создает 6 флажков для «A1: C3».При использовании этого сценария, пожалуйста, включите Sheets API в Advanced Services и консоли API следующим образом.
Включите Sheets API v4 в Advanced Google Services
- В редакторе сценариев
- Ресурсы -> Расширенные службы Google
- Включить API Google Sheets v4
- В редакторе сценариев
- Ресурсы -> Проект Cloud Platform
- Просмотр консоли API
- На начальном этапе нажмите Включить API и получите учетные данные, такие как ключи.
- С левой стороны щелкните Библиотека.
- В поле Поиск API и служб введите «листы».И нажмите Google Sheets API.
- Нажмите кнопку Включить.
- Если API уже включен, пожалуйста, не выключайте.
Если вы сейчас открываете редактор сценариев со сценарием для использования API Sheets, вы можете включить API Sheets для проекта, открыв этот URL-адрес https://console.cloud.google.com/apis/library/sheets.googleapis.com/
Пример сценария:
В этом примересценарий, флажки создаются для "A1: C3" Sheet1.Пожалуйста, используйте этот сценарий как сценарий с привязкой к контейнеру.
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheetId = ss.getSheetByName("Sheet1").getSheetId();
var resource = {"requests": [
{
"repeatCell": {
"cell": {"dataValidation": {"condition": {"type": "BOOLEAN"}}},
"range": {"sheetId": sheetId, "startRowIndex": 0, "endRowIndex": 3, "startColumnIndex": 0, "endColumnIndex": 3},
"fields": "dataValidation"
}
},
{
"updateCells": {
"rows": [
{"values": [{"userEnteredValue": {"boolValue": true}}, {"userEnteredValue": {"boolValue": false}}, {"userEnteredValue": {"boolValue": false}}]},
{"values": [{"userEnteredValue": {"boolValue": true}}, {"userEnteredValue": {"boolValue": true}}, {"userEnteredValue": {"boolValue": false}}]},
{"values": [{"userEnteredValue": {"boolValue": true}}, {"userEnteredValue": {"boolValue": true}}, {"userEnteredValue": {"boolValue": true}}]}
],
"start": {"rowIndex": 0, "columnIndex": 0, "sheetId": sheetId},
"fields": "userEnteredValue"
}
}
]};
Sheets.Spreadsheets.batchUpdate(resource, ss.getId());
Поток:
dataValidation
устанавливается с помощью repeatCell
. boolValue
устанавливается с помощью updateCells
.
Результат:
Примечание:
- Это простой пример сценария,Поэтому, пожалуйста, измените это для вашей среды.
- Когда можно использовать методы Class SpreadsheetApp для создания флажка, я думаю, что можно использовать следующий пример сценария.
Scriptдля класса SpreadsheetApp
22 июня 2018 г. этот скрипт возвращает ошибку ошибки сервера.
var rule = SpreadsheetApp.newDataValidation().withCriteria(SpreadsheetApp.DataValidationCriteria.CHECKBOX, ["TRUE", "FALSE"]).build();
SpreadsheetApp.getActiveSheet().getRange("A1").setDataValidation(rule);
Ссылки:
Если я неправильно понимаю ваш вопрос, извините.