可以在Google App Script中使用Google电子表格功能吗?

时间:2014-10-10 05:38:12

标签: function google-apps-script

我刚刚发现了谷歌应用程序脚本,我已经对某些东西感到难过...

我正在尝试为Google电子表格编写一个脚本,以查找某些历史股票价格。我发现Google App Scripts中的FinanceApp服务已被弃用,并且似乎被Google Spreadsheets中的GOOGLEFINANCE()函数取代。然而,当我只需要一个单元格时,它返回一个数组,并且数组正在破坏工作。

所以我想编写一个调用GOOGLEFINANCE()电子表格函数的简短脚本,并从GOOGLEFINANCE()返回的数组中找到我需要的1条信息。但是,我找不到在脚本中访问电子表格函数(SUM,VLOOKUP,GOOGLEFINANCE等)的方法。

有没有办法在脚本中访问这些功能?或者,是否有新服务取代了已弃用的FinanceApp服务?

非常感谢您的帮助!

4 个答案:

答案 0 :(得分:1)

Google Apps脚本不支持原生电子表格功能。

通过读取编写公式的单元格的值(在写入和读取时都使用脚本),最终可能会使用一些有点繁琐的解决方法,但这将不太实际和/或快速。

答案 1 :(得分:0)

有一种可能的方法,使用.setFormula()。此函数的行为类似于.setValue(),可以按以下方式使用:

var ss = SpreadsheetApp.getActiveSpreadsheet();
var mySheet = ss.getSheets()[0]

//Code Below selects the first cell in range column A and B
var thisCell = mySheet.getRange('A:B').getCell(1,1); 

thisCell.setFormula('=SUM(A2:A4)');

您在此函数中编写的所有公式都被视为字符串必须具有'或"在.setFormula()输入中。

答案 2 :(得分:0)

您可以尝试以下方法:

var trick = SpreadsheetApp.getActiveSheet().getRange('D2').setValue('=GOOGLEFINANCE("GOOG")').getValue();

答案 3 :(得分:-1)

你可以试试INDEX函数结合GOOGLEFINANCE-

供参考,

=GOOGLEFINANCE("MSFT", "PRICE", "01/01/21")

返回数组:

    Date    Close
    1/4/2021    217.69

可以添加 INDEX 函数,使用数组的行、列坐标从数组中挑选出特定的元素。

=INDEX(GOOGLEFINANCE("MSFT", "PRICE", "01/01/21"),2,2)

这仅返回第 2 行第 2 列 - 217.69 中的数据