将托管在GitHub上的项目与Google Apps脚本一起使用

时间:2018-07-01 02:40:09

标签: javascript google-apps-script google-sheets

我一直在尝试比较2个字符串,并查看2个字符串之间的相似性。我在https://github.com/aceakash/string-similarity的Github中找到了这个项目,它看起来完全符合我的需求。但是,我需要它才能与我的Google表格脚本一起使用。我以前从未使用过Github上的任何东西(初学者警报),您能帮我指出正确的方向吗?谢谢!

1 个答案:

答案 0 :(得分:0)

可以在Google Apps脚本功能中使用外部托管的javascript库,这在文章here中进行了介绍。

它使用javascript eval()函数,通常不建议使用甚至禁止使用它,但是如果您在受信任的资源上使用eval(),则可能会为您辩护要注入的任意代码。

您要使用的库不适合,因为它是服务器端的node.js模块,并且使用require,而Google Apps脚本不支持该库。但是,您可以使用许多其他客户端库。

下面的函数从外部源加载clj-fuzzy javascript文件-大多数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。

注意:该库有一条评论说它已被弃用,但如果您需要它,它可能不会消失。

每次调用该函数都必须下载外部资源,这似乎非常浪费-如果在具有数千行的工作表中使用它,可能会导致性能问题。

老实说,您最好下载文件并将其直接添加到项目中。