gpt4 book ai didi

google-apps-script - 1 个单元格范围的 Range.getValue() 需要 3 到 7 秒才能执行

转载 作者:行者123 更新时间:2023-12-05 06:37:55 24 4
gpt4 key购买 nike

我有一个脚本过去常常在一分钟内运行。最近我开始收到“超过最大执行时间”错误,表明它现在打破了 6 分钟的限制。

使用“执行记录”,我发现我进行的少数 getValue() 和 getValues() 调用需要很长时间,所以我进行了试验。

以下测试函数需要 3 到 7 秒才能执行:

function test_singleCellRange_getValue() {
var sheet = SpreadsheetApp.getActive().getSheetByName('Marcin');
var range = sheet.getRange(1, 1);
var value = range.getValue();
}

“执行记录”显示 getValue() 调用一直占用时间:

[17-10-29 14:15:00:002 EDT] Starting execution
[17-10-29 14:15:00:019 EDT] SpreadsheetApp.getActive() [0 seconds]
[17-10-29 14:15:00:074 EDT] Spreadsheet.getSheetByName([Marcin]) [0.054 seconds]
[17-10-29 14:15:00:075 EDT] Sheet.getRange([1, 1]) [0 seconds]
[17-10-29 14:15:07:377 EDT] Range.getValue() [7.301 seconds]
[17-10-29 14:15:07:381 EDT] Execution succeeded [7.36 seconds total runtime]

单个单元格包含一个常量字符串值(即没有公式)。 getValue() 的这种糟糕表现是否正常(即期望从 Google 服务器获得的新性能标准),或者我可以做些什么来提高性能?

更新

getValue() 的性能似乎受到电子表格大小的严重影响。尽管上面的代码在单个单元格范围内执行 getValue(),但它的性能似乎会受到电子表格整体大小的影响。

这毫无意义 - 有人有这方面的经验吗?这是 Google 设计 API 的方式还是一个错误?

最佳答案

使用 Sheets API v4 怎么样?请将此视为几个答案之一。当我在 Spreadsheet 中处理大数据时,由于处理速度,我经常使用 Sheets API。我不知道这个示例脚本是否对您的情况有用。如果这对您没有用,我很抱歉。

示例脚本:

此示例脚本可以检索与您的脚本相同的结果。

var sheetId = "### Spreadsheet ID ###";
var range = "Sheet1!A1:A1";
var value = Sheets.Spreadsheets.Values.get(sheetId, range);
// Logger.log(value.values)

要使用此脚本,请按如下方式为高级 Google 服务和 API 控制台启用 Sheets API。

在高级 Google 服务中启用 Sheets API v4

  • 在脚本编辑器上
    • 资源 -> 高级 Google 服务
    • 启用 Google Sheets API v4

在 API 控制台启用 Sheets API v4

  • 在脚本编辑器上
    • 资源 -> 云平台项目
    • 查看 API 控制台
    • 在入门中,点击启用 API 并获取 key 等凭据。
    • 点击左侧的图书馆。
    • 在“搜索 API 和服务”中,输入“sheets”。然后点击 Google Sheets API。
    • 点击启用按钮。

引用:

关于google-apps-script - 1 个单元格范围的 Range.getValue() 需要 3 到 7 秒才能执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47003734/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com