在Google电子表格中查询/访问/检索标题行

时间:2014-10-20 19:30:29

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

我正在使用Google表格API访问公开的Google文档电子表格。 API表示当您查询工作表的列表提要时,会返回排除第一行(即标题行)(按惯例)的行列表。

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

// 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);

还有另一种更明确的方法来检索标题行吗?

2 个答案:

答案 0 :(得分:1)

我搜索得很长很难,但似乎没有语义显式方法从电子表格中抓取标题。正如我在问题中提到的,你可以使用细胞饲料,这就是我所做的:

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&max-row=1部分。这将为您提供工作表第一行中的所有单元格。按照惯例,工作表中的第一行被视为标题。

答案 1 :(得分:-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%肯定。但看起来就像你想要的那样。