convertCellToRadiobox
await crafttechApi.convertCellToRadiobox(range, options);
Описание
Заголовок раздела «Описание»Формирует радиобоксы (радиокнопки) на место указанных ячеек в активном файле, из которого запущен текущий макрос.
Данный метод был разработал ввиду ограничений Р7-Офис Таблицы, не предусматривающих создание и взаимодействие с пользовательскими формами и элементами управления.
Не путать с convertCellToCheckbox, который подразумевает множественный выбор опций. В convertCellToRadiobox можно выбрать только одну ячейку из диапазона.
Макрос, использующий данный метод, должен работать в формате автозапуска (А).
Параметры
Заголовок раздела «Параметры»- range (string[] | string) — диапазон ячеек, на основе которых формируются радиобоксы; принимаются диапазоны в виде:
- одного диапазона в строковом формате (
"A1:F1"
); - массива строк с адресами ячеек (
["A1", "B1", "C1", "D1", "E1", "F1"]
); - микс адресов ячеек и диапазонов ячеек в виде массива (
["A1", "B1:B4", "C1", "D1", "E1", "F1:F2", "A5:C5"]
); - диапазоны ячеек с указанием листов (если название листа содержит проблемы, то его нужно указывать в виде одинарных кавычек):
["Лист1!A1", "'Расчет года'!B1:B4"]
- одного диапазона в строковом формате (
- options (string[] | object[]) — необязательный параметр; массив, содержащий бинарные опции с состояниями
true
илиfalse
, соответственно (то есть, если радиобокс активен, то ячейка принимает значение первого элемента параметра, если неактивен, то второго); три случая:- string[] — передаём массив строк, если бинарные опции представляют собой строковые значения, например:
['да', 'нет']
,['yes', 'no']
,['ok', 'fail']
,['v', 'x']
,- и так далее;
- object[] — передаём массив объектов с конфигурацией стилей если бинарные опции представляют собой форматирование ячеек: изменение цвета, установка границ и так далее;
- для установки стилей необходимо придерживаться конкретной структуры: для каждого стиля задаётся поле, соответствующее методу Р7-Офис, а в качестве значения — параметры метода в виде массива массивов;
- если параметр не передаётся или равен пустой строке, на месте ячеек формируются классические чекбоксы в привычном виде: квадрат, внутри которого отмечена или не отмечена галочка в зависимости от состояния.
- string[] — передаём массив строк, если бинарные опции представляют собой строковые значения, например:
Если вам необходимо, чтобы на листе было несколько радиобоксов и они работали независимо друг от друга, передавайте адреса ячеек массивом. Если нужно, чтобы на листе работал только один радиобокс вне зависимости от их количества, передавайте диапазон строкой, либо массивом с одним элементом.
Пример бинарных опций, когда нам нужно передать стили:
// ячейка ДАconst yesCell = { SetBorders: [ ["DiagonalDown", "Thin", Api.CreateColorFromRGB(0, 0, 0)], ["DiagonalUp", "Thin", Api.CreateColorFromRGB(0, 0, 0)], ], SetFillColor: [[Api.CreateColorFromRGB(255, 213, 191)]],};
// ячейка НЕТconst noCell = { SetFillColor: [[Api.CreateColorFromRGB(255, 213, 191)]],};
Возвращает
Заголовок раздела «Возвращает»Метод ничего не возвращает.
// ячейка ДАconst yesCell = { SetBorders: [ ["DiagonalDown", "Thin", Api.CreateColorFromRGB(0, 0, 0)], ["DiagonalUp", "Thin", Api.CreateColorFromRGB(0, 0, 0)], ], SetFillColor: [[Api.CreateColorFromRGB(255, 213, 191)]],};
// ячейка НЕТconst noCell = { SetFillColor: [[Api.CreateColorFromRGB(255, 213, 191)]],};
const choice = [yesCell, noCell];
await crafttechApi.convertCellToRadiobox(["A1:A3", "A5", "A7:A15"], choice);
Код выше устанавливает на диапазонах 'A1:A3'
, 'A5'
и 'A7:A15'
радиобоксы. Неактивные ячейки содержат заливку персикового цвета, активные — дополнительно границы по диагонали. Активные ячейки — A1
, A5
, A9
; неактивные — все остальные.
При этом каждый из диапазонов, переданных массивом, работают независимо друг от друга. Если нажать на ячейку A12
, то ячейка A9
перестанет быть активной, поскольку они принадлежат одному диапазону, в то время как ячейки A1
и A5
останутся в прежнем состоянии, так как за ним закреплены другие диапазона.
Обратная связь: support@crafttech.ru