Я недавно узнал о пользовательских функциях Excel для JS и пытаюсь поэкспериментировать с ними. Я пытаюсь создать пользовательскую функцию, которая будет использовать Fuse JS для выполнения нечетких поисков. Однако это не работает. Я не очень знаком с JS, поэтому извините за мой код. Для справки, вот руководство по использованию предварительно поставленных пользовательских функций: https://docs.microsoft.com/en-us/office/dev/add-ins/excel/custom-functions-overview.
Я добавил Fuse JS в качестве зависимости в пакете. json npm проект, а затем добавил в функцию следующую функцию. js file:
/**
* Runs fuzzy search with FuseJS.
* @customfunction
* @param {string} input string word or sentence to match.
* @return {string} closest match.
*/
function fuzzysearch(input)
{
var list = [
{
"id": "Great"
},
{
"id": "Super"
}];
var options = {
shouldSort: true,
tokenize: true,
includeScore: true,
threshold: 0.3,
location: 0,
distance: 100,
maxPatternLength: 100,
minMatchCharLength: 1,
keys: [
"id"
]
};
var fuse = new Fuse(list, options); // "list" is the item array
var result = fuse.search(input);
return result;
}
Я пробовал разные комбинации для кода, а также пытался добавить зависимость функции сценария CDN в функцию . html напрямую, но я не могу получить никакого результата. При попытке использовать следующую формулу в Excel я получаю сообщение об ошибке #NAME: "= CONTOSO.FUZZYSEARCH (Super)"
У кого-нибудь есть идеи?
Спасибо!