google-apps-script - 谷歌电子表格编辑器 : update sparse cells

标签 google-apps-script google-sheets

我需要在大约 10000 行和 200 列的电子表格中更新大约 300 个稀疏单元格,例如 A1、B200、A1000、B5000、A6000、A6001...。

现在我正在一个一个地更新单元格,但我正在寻找批处理方法来进行 1 次调用并传递一个数组来仅更新这些单元格。我搜索了其他 SO 线程和 google 电子表格文档,但对于批量更新,它们主要用于范围内的连续单元格。我找不到任何可以通过一次调用更新稀疏单元格的内容。

Google 建议进行批量更新,而不是单独调用。那么有没有什么方法可以调用只传递需要更新的单元格呢?

最佳答案

您可以使用 Advanced Sheets ServiceGoogle Sheets API v4 & Sheets.Spreadsheets.Values.batchUpdate(resource, spreadsheetId)一定要 Enable脚本中的服务

function updateMultipleRanges () {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];
  var range_one = sheet.getRange("A1:D3").getA1Notation();
  var range_two = sheet.getRange("G1:G4").getA1Notation();
  
  // Create the JSON Request Body
  var update_req = {
    "valueInputOption": "RAW",
    "data": [{
        "range": range_one,
        "majorDimension": "ROWS",
        "values": [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]],
      },
      {
        "range": range_two,
        "majorDimension": "ROWS",
        "values": [[1], [2], [3], [4]],
      }],
    "includeValuesInResponse": false
  }

  Sheets.Spreadsheets.Values.batchUpdate(JSON.stringify(update_req), ss.getId())
}
创建一个 ValueRange您要更新的每个范围的对象并将其添加到 data[]

关于google-apps-script - 谷歌电子表格编辑器 : update sparse cells,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45588514/

相关文章:

javascript - 脚本正在运行,但仅适用于 "hack"

Javascript new Date() 返回 1969 年 12 月 31 日

google-sheets - Google Sheets 查询语言 : can you use other SQL instructions like UPDATE, INSERT…?

regex - 计算用户自定义功能Google Apps脚本输入的值的范围

javascript - 使用 Google Apps 脚本查找二维数组内部

javascript - GSA 错误 : Cannot find function includes in object

logging - 在 Google Apps 脚本中打印到控制台?

javascript - 如何将数据从 google appscript 发送到 html 页面

Python google sheets,for循环在一个循环后退出

google-sheets - Google 表格中的公式长度有限制吗?