2016-12-27 4 views
2

Я хочу выполнить запрос api-файлов Google с помощью одного вызова api.Создайте лист и обновите данные одним запросом

мне удалось реализовать этот код:

List<Request> requests = new ArrayList<>(); 

     List<CellData> values = new ArrayList<>(); 

     values.add(new CellData() 
      .setUserEnteredValue(new ExtendedValue() 
       .setStringValue("Hello World!"))); 

     requests.add(new Request().setAddSheet(new AddSheetRequest() 
      .setProperties(new SheetProperties() 
       .setTitle("scstc"))) 
      .setUpdateCells(new UpdateCellsRequest() 
       .setStart(new GridCoordinate() 
        .setSheetId(0) 
        .setRowIndex(0) 
        .setColumnIndex(0)) 
       .setRows(Arrays.asList(
        new RowData().setValues(values))) 
       .setFields("userEnteredValue,userEnteredFormat.backgroundColor")) 
     ); 

     BatchUpdateSpreadsheetRequest body = new BatchUpdateSpreadsheetRequest().setRequests(requests); 

     BatchUpdateSpreadsheetResponse response = service.spreadsheets().batchUpdate(spreadsheetId, body).execute(); 

Но я получаю сообщение об ошибке:

400 Bad Request 
{ 
    "code" : 400, 
    "errors" : [ { 
    "domain" : "global", 
    "message" : "Invalid value at 'requests[0]' (oneof), oneof field 'kind' is already set. Cannot set 'updateCells'", 
    "reason" : "badRequest" 
    } ], 
    "message" : "Invalid value at 'requests[0]' (oneof), oneof field 'kind' is already set. Cannot set 'updateCells'", 
    "status" : "INVALID_ARGUMENT" 
} 
    at com.google.sheet.impl.GoogleSheetBasicTest1_____1.hello(GoogleSheetBasicTest1_____1.java:133) 

ли вы, как, как я могу решить эту проблему?

ответ

3

Каждый объект Request должен иметь только одно значение, установленное внутри него. Вы настраиваете два значения:

requests.add(new Request() 
      .setAddSheet(...) 
      .setUpdateCells(...)); 

Вместо того, чтобы делать выше, необходимо использовать два объекта запроса:

requests.add(new Request().setAddSheet(...)); 
requests.add(new Request().setUpdateCells(...)); 
Смежные вопросы