【问题标题】:How to get a data range of the Sheet如何获取Sheet的数据范围
【发布时间】:2018-08-01 16:53:44
【问题描述】:

我需要获取工作表的数据范围。我必须调用 API 两次。

GET https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}/values/Sheet1?majorDimension=ROWS
// Height is result.length

GET https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}/values/Sheet1?majorDimension=COLUMNS
// Width is result.length

但我不需要数据,我只需要数据范围的大小。有没有办法得到它?

【问题讨论】:

    标签: google-apps-script web-applications google-sheets-api


    【解决方案1】:

    很遗憾,我找不到使用 Sheets API 直接检索“数据范围大小”的方法。因此,作为一种解决方法,我想建议使用 Web 应用程序。就您而言,您似乎已经拥有访问令牌。因此,此提案使用访问令牌访问 Web 应用程序。本提案的流程如下。

    1。复制并粘贴此示例脚本

    function doGet(e) {
      var id = e.parameter.id;
      var sheetName = e.parameter.sheetname;
      var result = {};
      try {
        var ss = SpreadsheetApp.openById(id).getSheetByName(sheetName);
        result.LastRow = ss.getLastRow();
        result.LastColumn = ss.getLastColumn();
      } catch(er) {
        result.Error = er;
      }
      return ContentService.createTextOutput(JSON.stringify(result)).setMimeType(ContentService.MimeType.JSON);
    }
    

    复制粘贴后,请直接运行doGet()。这样就可以进行授权了。请忽略脚本的错误。

    2。部署网络应用:

    部署Web Apps的条件如下。

    • 在项目的脚本编辑器上使用doGet()
      • 发布 -> 部署为网络应用
      • 对于“将应用程序执行为:”,设置 “我”
      • 对于“谁有权访问该应用:”,设置“仅限我自己”
      • 点击部署。
      • 复制 Web 应用的 URL。

    在上述情况下,只有在使用访问令牌时,您才能访问 Web 应用程序。不使用访问令牌时,返回Unauthorized 的错误。 在这种情况下,请将https://www.googleapis.com/auth/drive 包含在范围内。

    3。卷曲样本:

    这是一个示例卷曲。使用它,您可以检索电子表格的 LastRow 和 LastColumn。 使用时,请将 URL 替换为您的 Web Apps 的 URL,并输入电子表格 ID 和工作表名称。

    curl -GL \
      -H "Authorization: Bearer ### your access token ###" \
      -d "id=### spreadsheet ID ###" \
      -d "sheetname=### sheet name ###" \
      "https://script.google.com/macros/s/#####/exec"
    
    样本结果:
    {"LastRow":10,"LastColumn":10}
    

    如果这对你没有用,我很抱歉。

    【讨论】:

    • @oshliaer 欢迎。我很高兴你的问题得到了解决。也谢谢你!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-11
    • 1970-01-01
    • 2022-07-22
    • 1970-01-01
    • 2020-03-09
    相关资源
    最近更新 更多