【问题标题】:Pushing a custom hyperlink to Google Sheets with Google Apps Script [duplicate]使用 Google Apps 脚本将自定义超链接推送到 Google 表格 [重复]
【发布时间】:2018-09-25 14:28:58
【问题描述】:

我正在寻找一种简单的方法,让我的代码将链接从常规静态文本转换为可单击的超链接。该代码应该让您输入文本,然后代码会自动将其转换为一个链接,让您可以在 Google 涂鸦游戏 Image Breakout(Atari Breakout 的衍生产品)中使用该图像搜索。

我做的第一件事就是试试这个:

function IMAGEBREAKOUT(input) 
{
var array = [];
var url = 'https://www.google.com/search?q=' + input + '&tbm=isch&tbs=boee:1';
  array.push([url]);
  return array;
}

那只给了我常规的文本,并没有给我一个可点击的链接,所以我尝试了这个:

function IMAGEBREAKOUT(input) 
{
  var array = [];
  var url = 'https://www.google.com/search?q=' + input + '&tbm=isch&tbs=boee:1';
    array.push("<a href=url>" + url + "</a>");
    return array;
}

但是,这只给了我不起作用的 HTML 格式的静态文本。所以,然后我尝试研究,并继续尝试:

function IMAGEBREAKOUT(input) 
{
 var array = [];
 var url = 'https://www.google.com/search?q=' + input + '&tbm=isch&tbs=boee:1';
    SpreadsheetApp.getActiveSheet().getActiveCell().setFormula('=HYPERLINK("' + url + )');
}

但它说我没有权限拨打setFormula

我稍后尝试授权该应用程序,并且在编辑器中运行它时它工作,但在 Google 表格中运行公式给我同样的错误。

我在这里很紧张。有人可以帮助我,或者修改我的脚本,使其不需要那么多吗?如果那不可能,是否有一种我没有考虑过的更简单的方法来做到这一点?谢谢!

【问题讨论】:

  • 自定义函数(例如A1: =MyAppsScriptFunction(someInput))不能修改任何单元格 - 它只能return 一个值或一个值数组。这是设计使然。 developers.google.com/apps-script/guides/sheets/…
  • @tehhowch 好的,可以让它作为超链接返回吗?
  • @I'-'我试图得到你所描述的,而对我来说,我的第一个函数并没有做到这一点。它只是给了我无法点击的静态文本。
  • @I'-'我刚刚尝试了=IMAGEBREAKOUT("cute puppies"),但它不起作用。然后我尝试=IMAGEBREAKOUT("Atari"),它突然工作了。现在我很困惑。您的超链接功能在两个示例中都可以正常工作,但我需要弄清楚如何在没有其他功能的情况下使其自行工作。
  • @I'-'I 哦,谢谢!

标签: google-apps-script google-sheets custom-function


【解决方案1】:

感谢@I'-'I,我能够发现我需要对 URI 进行编码,所以我的代码现在看起来像这样:

function IMAGEBREAKOUT(input) 
{
  var url = 'https://www.google.com/search?q=' + input + '&tbm=isch&tbs=boee:1';
  return encodeURI([url]);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-10
    • 2021-12-10
    • 1970-01-01
    • 2020-04-29
    相关资源
    最近更新 更多