Можно использовать библиотеку javascript, размещенную извне, в функции сценария приложений Google, и это описано в статье здесь .
Он использует функцию javascript eval()
, которая обычно не рекомендуется или даже запрещена, но вы можете быть в состоянии обосновать это, если вы используете eval()
на доверенном ресурсе, и нет никакого способа для произвольного кода быть впрыскивается.
Библиотека, которую вы хотите использовать, однако, не подходит, так как это серверный модуль node.js и использует require
, который не поддерживается Google Apps Script. Однако есть ряд других клиентских библиотек, которые вы можете использовать.
Приведенная ниже функция загружает файл javascript clj-fuzzy из внешнего источника - большинство библиотек javascript доступны где-то в CDN. Библиотека clj-fuzzy, похоже, имеет тот же образец - «исцеленный» по сравнению с «запечатанным», как и библиотека, которую вы предложили.
function COMPARE_DISTANCE(s1, s2) {
var url = "https://cdn.jsdelivr.net/npm/clj-fuzzy@0.4.1/src-js/clj-fuzzy.min.js";
var javascript = UrlFetchApp.fetch(url).getContentText();
eval(javascript);
var distance = clj_fuzzy.metrics.dice(s1, s2);
return distance;
}
Вы можете назвать это с вашего листа
=COMPARE_DISTANCE(A1, B1)
И он вернет 0,8 для тестовых строк.
Примечание: в этой библиотеке есть комментарий о том, что она устарела, но если она делает то, что вам нужно, она, вероятно, не исчезнет.
Кажется очень расточительным, что вам приходится загружать внешний ресурс для каждого вызова функции - могут возникнуть проблемы с производительностью, если вы используете его на листе с тысячами строк.
Честно говоря, вам лучше загрузить файл и напрямую добавить его в свой проект.