【问题标题】:Querying/Accessing/Retrieving Header row in Google Spreadsheet在 Google 电子表格中查询/访问/检索标题行
【发布时间】:2023-03-23 03:48:01
【问题描述】:

我正在使用 Google Sheets API 访问公开的 Google Docs 电子表格。该 API 表示,当您查询工作表的列表提要时,您会返回一个不包括第一行的行列表,第一行是标题行(按照惯例)。

有没有办法访问标题行?我看到您可以使用单元格供稿来请求特定单元格:

// Fetch column 4, and every row after row 1.
URL cellFeedUrl = new URI(worksheet.getCellFeedUrl().toString()
    + "?min-row=2&min-col=4&max-col=4").toURL();
CellFeed cellFeed = service.getFeed(cellFeedUrl, CellFeed.class);

还有其他更明确的方法来检索标题行吗?

【问题讨论】:

    标签: java google-sheets gdata google-spreadsheet-api gdata-api


    【解决方案1】:

    getTags() 这可能会返回一个带有“name”、“address”、“manager”、“employeeid”的迭代。”

    https://developers.google.com/gdata/javadoc/com/google/gdata/data/spreadsheet/CustomElementCollection#getTags()

    示例 - ListDemo.java

      public void printAndCacheEntry(ListEntry entry) {
    
        // We only care about the entry id, chop off the leftmost part.
        // I.E., this turns http://spreadsheets.google.com/..../cpzh6 into cpzh6.
        String id = entry.getId().substring(entry.getId().lastIndexOf('/') + 1);
    
        // Cache all displayed entries so that they can be updated later.
        entriesCached.put(id, entry);
    
        out.println("-- id: " + id + "  title: " + entry.getTitle().getPlainText());
    
        for (String tag : entry.getCustomElements().getTags()) {
          out.println("     <gsx:" + tag + ">"
              + entry.getCustomElements().getValue(tag) + "</gsx:" + tag + ">");
        }
      }
    

    http://gdata-java-client.googlecode.com/svn-history/r497/trunk/java/sample/spreadsheet/list/ListDemo.java

    我从来没有使用过这个,所以不能 100% 确定。但看起来像你想要的。

    【讨论】:

    • 我查看了getTags(),但它以“slug”形式提供给您。所以不保留大小写,空格也是如此。
    【解决方案2】:

    我搜索了很长时间,但似乎没有语义上的显式方法可以从电子表格中获取标题。正如我在问题中提到的,您可以使用单元格提要,这就是我所做的:

    URL cellFeedUrl = new URL(worksheet.getCellFeedUrl().toString() + "?min-row=1&max-row=1");
    CellFeed cellFeed = service.getFeed(cellFeedUrl, CellFeed.class);
    for(CellEntry cellEntry : cellFeed.getEntries()) {
        System.out.print(cellEntry.getCell().getValue() + ",");
    }
    System.out.println();
    

    重要的部分是?min-row=1&amp;max-row=1 部分。这将为您提供工作表第一行中的所有单元格。按照惯例,工作表中的第一行被视为标题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多