通过Google表格上的脚本从图片获取网址-此代码仍然有效吗?

时间:2019-02-04 20:05:34

标签: javascript google-apps-script

我正在使用Google表格。

单元格A1:

=image("address.jpg")

这会将图像放入单元格中。要从Stack Overflow中获取网址,请生成this answer

我创建了脚本,并且Google能够自动完成识别它。我得到的错误是:

  

TypeError:无法调用null的方法“ match”。 (第10行)。

我通过一个检查器运行了正则表达式,它确实得到了我要查找的内容,即地址,但是错误似乎表明它没有任何返回。

这仍然有效吗? Google进行了更改吗?

我的解决方法是创建两个工作表,并在一个工作表中包含§= image,而在第二个工作表中,我删除§并使用标准的Google函数。

链接解决方案要好得多,如果可以的话,我想实现这一点。我没有信誉点,因此无法在原始解决方案的页面上发表评论。

1 个答案:

答案 0 :(得分:0)

在您的情况下,“ null”作为参数给出。因为=getImageUrl(A1)无法直接检索公式。由此,发生Cannot call method "match" of null.的错误。可以通过getFormula()检索公式。埃里克·科莱达(Eric Koleda)的回答中也提到了这一点。因此,例如,可以对脚本进行如下修改。

修改后的脚本:

function getImageUrl(range) {
  var formula = SpreadsheetApp.getActiveSheet().getRange(range).getFormula(); // Added
  var regex = /=image\("(.*)"/i;
  var matches = formula.match(regex);
  return matches ? matches[1] : null;
}

注意:

  • 如果将=image("URL")放在“ A1”中,则像=getImageUrl("A1")这样使用时。 请用双引号将A1括起来。这样,字符串“ A1”将被赋予函数并用作范围。

参考: