добавление новой формулы
| name | string | название формулы (буквами в верхнем регистре) |
| handler | function | обработчик, который определяет логику работы формулы |
| category | string | необязательный, название пользовательской категории для новой формулы |
| generateHTML | boolean | необязательный, позволяет пользовательскому методу генерировать HTML при включённом свойстве xssSafe |
$$("ss1").registerMathMethod("NEW", function(value){
// ваш обработчик
});
Функция-обработчик может получать параметры, например значение одной ячейки, значения из диапазона ячеек (значения будут передаваться по ссылкам, например H3 или H3:H5) или произвольные параметры (например, число знаков после запятой, до которого нужно округлить число).
Новую формулу можно использовать как обычную встроенную функцию: =NEW(H3:H5);.
Вы можете добавить подсказки для параметров новой формулы, обновив локаль webix.i18n.spreadsheet.liveEditor["functions-syntax"].

Например:
const ssheet = webix.ui({
view: "spreadsheet",
toolbar: "full"
});
ssheet.registerMathMethod("RANDOM", function(value){ value = value || 100; return Math.round(Math.random()*value); });
webix.i18n.spreadsheet.liveEditor["functions-syntax"].RANDOM = [ ["Digit", "Optional. The number digit."] ];
ssheet.setCellValue(1,1,"=RANDOM(100)")
Также можно указать пользовательскую категорию при добавлении новой формулы:
webix.ui({
view:"spreadsheet",
id: "sheets",
methods:"all",
toolbar:"full",
});
webix.i18n.spreadsheet.liveEditor.custom = "Custom";
$$("sheets").registerMathMethod("returnone", () => 1, "custom");
$$("sheets").setCellValue(1, 1, "=RETURNONE()")

Чтобы разрешить пользовательскому методу генерировать HTML при включённом свойстве xssSafe, передайте параметру generateHTML метода registerMathMethod() значение true:
const spreadsheet = webix.ui({
view: "spreadsheet",
xssSafe: true
});
spreadsheet.registerMathMethod("bold", v => `<b>${v}</b>`, null, true);
spreadsheet.setCellValue(1, 1, '=bold("text")');
При использовании метода с разрешённой генерацией HTML в математических формулах, в формуле необходимо задавать только метод. Например: =IMAGE(...) отрисует изображение, но =IMAGE(...)&"text" будет экранировано.
Чтобы указать способ отображения математических вычислений в ячейке, можно задать необходимые настройки через метод $mathTemplate.