Запрос/доступ/получение строки заголовка в электронной таблице Google

Я получаю доступ к общедоступной электронной таблице Google Docs с помощью API Google Sheets. 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);

Есть ли другой способ, более явный, для получения строки заголовка?


person Vivin Paliath    schedule 20.10.2014    source источник


Ответы (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&max-row=1. Это дает вам все ячейки в первой строке листа. По соглашению самая первая строка на листе считается заголовком.

person Vivin Paliath    schedule 20.10.2014

getTags() это может вернуть итерируемый объект с "имя", "адрес", "менеджер", "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%. Но похоже на то, что вы хотите.

person eddyparkinson    schedule 21.10.2014
comment
Я посмотрел на getTags(), но он выдает их вам в форме слагов. Так что регистр не сохраняется, то же самое и с пробелами. - person Vivin Paliath; 21.10.2014