标签: google-apps-script

UrlFetchApp.fetch()在onEdit触发器中不起作用

我希望UrlFetchApp.fetch()根据工作表上的用户输入进行调用,但没有任何反应.没有错误,只是默默地忽略了这个电话.这同样适用于MailApp.sendEmail()与GmailApp.sendEmail()

这是在Google Apps域上,只有域用户使用Google表格.

google-sheets google-apps-script google-apps-script-simple-triggers

12
推荐指数
1
解决办法
3051
查看次数

如何下载Google幻灯片作为图片?

我非常喜欢使用Google Slides作为云托管的轻量级插图画家替代品(也恰好是协作和免费的!).我在这里写了一些关于我的过程的想法:

https://medium.com/@tomcritchlow/how-to-use-google-slides-as-a-free-cloud-hosted-illustrator-replacement-f472e6c3a881

我在工作流程中尝试做的是立即将演示文稿中的所有幻灯片作为图像下载?Google幻灯片用户界面只允许您一次下载每张幻灯片作为PNG吗?

这是否可能以某种方式使用附加组件或应用程序脚本?不知道从哪里开始...谢谢!

png google-apps-script google-slides

12
推荐指数
2
解决办法
6524
查看次数

不使用 A1 表示法时 Sheet.getRange 抛出签名不匹配异常

我正在 Google Sheet 上编写一个脚本,该脚本将与 Google Map 的地理编码服务进行交互。

以下代码工作正常。

var ss = SpreadsheetApp.getActiveSpreadsheet();
var header_v = ss.getRange("1:1").getValues();
Run Code Online (Sandbox Code Playgroud)

但是,稍后在我的函数中,我Sheet.getRange()再次使用该Sheet.getRange(number, number, number, number)方法调用:

var target_range = ss.getRange(1, ss.getLastColumn()+1, ss.getLastRow(), 10);
Run Code Online (Sandbox Code Playgroud)

抛出以下异常:

Exception: The parameters (String,number,number,number) don't match the method signature for Spreadsheet.getRange.
Run Code Online (Sandbox Code Playgroud)

我尝试用我知道是数字的变量替换第一个参数,以达到相同的效果。

这是当前状态下的函数。

function geocode() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var header_v = ss.getRange("1:1").getValues();

  var col_indxs = {
    name : header_v[0].indexOf("restaurant_name"),
    address : header_v[0].indexOf("address")
  }

  var target_range = ss.getRange(1, ss.getLastColumn()+1, ss.getLastRow(), 10);
  Logger.log(target_range.getA1Notation());
}
Run Code Online (Sandbox Code Playgroud)

google-sheets google-apps-script

12
推荐指数
1
解决办法
2万
查看次数

12
推荐指数
1
解决办法
2165
查看次数

如何在 Microsoft Excel 中解析 JSON 或 CSV 字符串中的单个值?或者谷歌表格?

我将有数百个单元,它们将使用 Web 服务调用来获取股票数据。但是,数据仅以 JSON 或 CSV 格式返回。举一个例子,我怎样才能从每个动态 JSON 或 CSV 字符串中仅获取“uHigh”值,给出下面的示例并知道数字值的长度每次都可能不同?

[{"date":"2020-01-22","uClose":1485.95,"uOpen":1491,"uHigh":1503.21,"uLow":1484.93,"uVolume":1610846,"close":1485.95,"open":1491,"high":1503.21,"low":1484.93,"volume":1610846,"change":1.55,"changePercent":0.1044,"label":"Jan 22","changeOverTime":0.001044}]
Run Code Online (Sandbox Code Playgroud)

或者我可以解析 CSV,例如

"date,uClose,uOpen,uHigh,uLow,uVolume,close,open,high,low,volume,change,changePercent,label,changeOverTime,symbol
2020-01-22,1485.95,1491,1503.21,1484.93,1610846,1485.95,1491,1503.21,1484.93,1610846,1.55,0.1044,Jan 22,0.001044,GOOG"
Run Code Online (Sandbox Code Playgroud)

Excel 提供了一种 FILTERXML 方法,但据我所知,没有用于 JSON 或 CSV 的方法,那么我可以在“=something-here”单元格值中放入什么来仅解析出 uHigh 值?

如果有帮助的话我会使用 Google Sheets。

excel vba json google-sheets google-apps-script

12
推荐指数
3
解决办法
3万
查看次数

谷歌金融作为 ArrayFormula 的论据

=ARRAYFORMULA(IF(ROW(B:B)=1, "Share Price", IF(ISBLANK(B:B), "", googlefinance(B:B, "price"))))
Run Code Online (Sandbox Code Playgroud)

我试图让第 1 行(我的标题行)有一个名称,然后在其下方,如果 B 列中输入了有效的股票代码,则让 google Finance 获取该股票的价格。然而,我在“股价”下方的所有单元格中都得到了“N/A”,并且不明白为什么。

请帮助。

编辑:链接到工作表: https://docs.google.com/spreadsheets/d/1lyYYzLrFHfjojlL27bQ6ligNz2DBVpSM24jYfAVBVQs/edit ?usp=sharing

google-finance google-sheets google-apps-script array-formulas google-sheets-formula

12
推荐指数
2
解决办法
5146
查看次数

您如何解决“参数(数字 [])与 SpreadsheetApp.Range.setValues 的方法签名不匹配”错误

我收到此错误:

“参数 (number[]) 与 SpreadsheetApp.Range.setValues 的方法签名不匹配。”

当我尝试将一组值写入工作表时,在我的 Google Apps 脚本中。

下面是代码的缩短(简化)版本。实际代码运行了大约 10,000 条记录。

当setValues调用时,错误发生在最后一行。

我知道我在这里错过了一些非常简单的东西。

function writeArrayToSheet() {

  var ss = SpreadsheetApp.openById("Spreadsheet_ID");
  var orderSheet = ss.getSheetByName("Sheet_Name");
  var vTable = orderSheet.getRange(1,6,5,11).getValues(); //Raw data 
  var vWriteTable = []; //Data that will be written to sheet
  var updateTime = new Date();
  var i = 0;
  var vSeconds = 0;


  while (i < 5 && vTable[i][0] != "") {

    //Logic section that calculated the number of seconds between

    if (vSeconds == 0) …
Run Code Online (Sandbox Code Playgroud)

arrays google-sheets google-apps-script

12
推荐指数
1
解决办法
2万
查看次数

使用基本身份验证的 Google Apps 脚本中 UrlFetchApp.fetch 出现意外错误

我在 Google Apps Script 中有以下代码,它使用基本身份验证通过 HTTP 从网页中检索 CSV 数据并将其放入电子表格中:

CSVImport.gs

function parseCSVtoSheet(sheetName, url)
{
  // Credentials
  var username = "myusername";
  var password = "mypassword";
  var header = "Basic " + Utilities.base64Encode(username + ":" + password);
  
  // Setting the authorization header for basic HTTP authentication
  var options = {
    "headers": {
      "Authorization": header
    }
  };
  
  // Getting the ID of the sheet with the name passed as parameter
  var spreadsheet = SpreadsheetApp.getActive();
  var sheet = spreadsheet.getSheetByName(sheetName);
  var sheetId = sheet.getSheetId();
  
  // …
Run Code Online (Sandbox Code Playgroud)

javascript basic-authentication urlfetch google-apps-script

12
推荐指数
1
解决办法
1484
查看次数

自定义函数间歇性挂起并显示“错误 - 正在加载数据”

我有一个 Google Apps 脚本自定义函数,非常简单:

function sharesBurned(sharesToSell) {     
  return "tree"
}
Run Code Online (Sandbox Code Playgroud)

显然,当我在 Apps 脚本中测试它时,这是有效的。例如,在我的工作表中,当我在单元格中调用它时sharesBurned(2),它有时会返回“正在加载”,并且在单元格的右上角会出现一个红色三角形符号,当将鼠标悬停在该符号上时,会显示:“错误 -加载数据中...”。

我知道有几个关于此的线程,但它们已经很旧了,而且我已经尝试了所有建议,但都无济于事,即:

  • 更改函数名称
  • 刷新电子表格
  • 切换参数单元格
  • 复制电子表格
  • 清除浏览器缓存/cookie

需要明确的是,该函数有一半的时间无缝地加载到单元格中,而另一半则像这样卡住了。我非常怀疑这是脚本本身的问题,所以这可能是 Google Sheets 的一些奇怪的错误(缓存?没有线索)。

google-sheets google-apps-script custom-function

12
推荐指数
1
解决办法
2759
查看次数

如何在谷歌电子表格中的过滤器公式中显示零代替错误

我是谷歌电子表格功能的新手,并试图通过以下方式应用公式:

我在一个工作簿(name-formula4)中有sheet1和sheet2,我正在使用以下公式从sheet1到sheet2进行过滤范围的sumproduct:

=SUMPRODUCT(filter(Sheet1!$A$1:$A$401, (Sheet1!$B$1:$B$401>= E1) * (Sheet1!$B$1:$B$401<= E2)))
Run Code Online (Sandbox Code Playgroud)

当选择范围时,公式完全正常(Sheet1!$ B $ 1:$ B $ 401> = E1)*(Sheet1!$ B $ 1:$ B $ 401 <= E2)有一些值并且不为空,但是如果我离开单元格如果所述范围为空(sheet1!b1:b3),则需要满足标准,然后给出错误"在过滤器评估中未找到匹配".在坚果壳中我想显示"0"而不是显示错误或"NA".

请注意,我无法填充整个选定的B列,因为它从表单接收实时数据而不是先前确定的数据.

请查看以下链接以获取详细信息并帮助纠正上述公式:

https://docs.google.com/spreadsheets/d/1HTXf4VG2JupiP9UqCLRyAddYjhsom1leQOI9-DwfMaY/edit#gid=0

google-sheets google-apps-script

11
推荐指数
3
解决办法
8502
查看次数