Добавить заголовок через Google Spreadsheet API - PullRequest
6 голосов
/ 07 сентября 2011

Я не могу вставить заголовок (или любые обычные данные) во вновь созданную рабочую таблицу через Java API. Стандартный способ вставки данных заключается в предоставлении заголовка и значения, например,

newEntry.getCustomElements().setValueLocal(header, value2);

Этот вопрос похож на этот вопрос, размещенный в stackoverflow:

Как добавить заголовок в таблицу Google

Предложенный ответ состоял в том, чтобы попытаться использовать канал на основе ячеек, а не список, основанный в примере выше. Я был не в состоянии сделать это, поскольку любой запрос к ячейкам или попытки получить фид ячеек, кажется, возвращают 0, так как нет данных в какой-либо ячейке для возврата ... по крайней мере, это то, что я думаю, происходит ...

1012 *, например *

    public void getCells(){
         cellFeedUrl = worksheetEntry.getCellFeedUrl();
        CellFeed feed;
        try {
            feed = spreadSheetService.getFeed(cellFeedUrl, CellFeed.class);

        for (CellEntry cell : feed.getEntries()) {
          System.out.println(worksheetEntry.getTitle().getPlainText());
          String shortId = cell.getId().substring(cell.getId().lastIndexOf('/') + 1);
          System.out.println(" -- Cell(" + shortId + "/" + cell.getTitle().getPlainText()
              + ") formula(" + cell.getCell().getInputValue() + ") numeric("
              + cell.getCell().getNumericValue() + ") value("
              + cell.getCell().getValue() + ")");
        }
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (ServiceException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

and

public void queryHeader(){

    CellQuery query = new CellQuery(cellFeedUrl);
    query.setMinimumRow(1);
    query.setMaximumRow(1);
    query.setMinimumCol(1);
    query.setMaximumCol(1);
    try {
        CellFeed feed = spreadSheetService.query(query, CellFeed.class);

        List<CellEntry> entries = feed.getEntries();

        for(CellEntry cell : entries){

            cell.changeInputValueLocal("new");
        }

    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (ServiceException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

1 Ответ

4 голосов
/ 24 ноября 2011

Ваше подозрение о том, что пустые ячейки не возвращаются, верно. Вы можете изменить эту настройку по умолчанию, добавив следующую строку:

query.setReturnEmpty(true);

...