0

我想創建空單,並插入一些數據。我測試此代碼:將數據插入到新的谷歌片

Sheets service = getSheetsService(); 

     // Fist create empty new sheet 
     List<Request> requests = new ArrayList<>(); 

     requests.add(new Request().setAddSheet(new AddSheetRequest() 
      .setProperties(new SheetProperties() 
       .setTitle("scstc")))); 

     BatchUpdateSpreadsheetRequest body = new BatchUpdateSpreadsheetRequest().setRequests(requests); 
     BatchUpdateSpreadsheetResponse response = service.spreadsheets().batchUpdate(spreadsheetId, body).execute(); 

     // Second add data into new sheet 
     List<List<Object>> writeData = new ArrayList<>(); 

     List<Object> dataRow = new ArrayList<>(); 
     dataRow.add("data 1 " + timestamp); 
     dataRow.add("data 2 " + timestamp); 
     dataRow.add("data 3 " + timestamp); 
     dataRow.add("data 4 " + timestamp); 
     dataRow.add("data 5 " + timestamp); 
     writeData.add(dataRow); 

     ValueRange oRange = new ValueRange(); 
     oRange.setRange(range); // 
     oRange.setValues(writeData); 

     List<ValueRange> oList = new ArrayList<>(); 
     oList.add(oRange); 

     BatchUpdateValuesRequest oRequest = new BatchUpdateValuesRequest(); 
     oRequest.setValueInputOption("RAW"); 
     oRequest.setData(oList); 

     BatchUpdateValuesResponse oResp1 = service.spreadsheets().values().batchUpdate(spreadsheetId, oRequest).execute(); 

的代碼工作,但我有以下限制:

拳頭批調用創建空單。 第二批次調用將測試數據插入到錯誤的工作表中,始終是第一個。

我怎麼能與一個呼叫創建新表和插入數據?如果這是不可能的,我可以如何將數據插入到新工作表中?

回答

0

oRange.setRange(range); //缺少註釋解釋什麼線打算這樣做。你沒有任何分配range的值,所以我不確定你的意思是什麼。

如果要將值寫入新工作表,您需要確保range指向該工作表,使用range = "scstc"(這是您添加的工作表的標題)。

或者,您也可以通過在SheetProperties對象指定sheetId做一個BatchUpdateSpreadsheet要求的一切,然後還添加UpdateCellsRequest指向同一sheetId,充滿了,你想它的rowData

+0

你能告訴我完整的例子嗎? –

+0

對於更簡單的版本,修復只是將範圍分配給您的工作表的標題 - 我不知道你想要什麼樣的例子。對於更復雜(但更少請求)的版本,請參閱文檔中的[Samples](https://developers.google.com/sheets/api/samples/)。 –