0

空のシートを作成してデータを挿入したい。私はこのコードをテストした:新しいGoogleシートにデータを挿入する

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

コードが動作しているが、私は、次の制限があります。

拳バッチ呼び出しが空のシートを作成します。 2回目のバッチコールでは、テストデータが間違ったシートに挿入されます。

1回の呼び出しで新しいシートとデータを作成する方法はありますか?これが不可能な場合、新しいシートにどのようにデータを挿入できますか?

答えて

0

行番号oRange.setRange(range); //には、行の目的を説明するコメントがありません。あなたは値にrangeを割り当てる行がないので、あなたはそれが何を意味するか分かりません。

新しいシートに値を書き込む場合は、(追加したシートのタイトル)を使用して、rangeがそのシートを指していることを確認する必要があります。

代わりに、あなたがそれを好きな記入rowDataで、同じsheetIdを指しUpdateCellsRequestを追加することも、その後SheetPropertiesオブジェクトにsheetIdを指定することで、単一BatchUpdateSpreadsheet要求に全力を尽くす、とすることができます。

+0

完全な例を教えてください。 –

+0

もっと簡単なバージョンでは、シートのタイトルに範囲を割り当てるだけです。例がほしいと思うかどうかはわかりません。より複雑な(ただし要求は少ない)バージョンについては、ドキュメントの[サンプル](https://developers.google.com/sheets/api/samples/)を参照してください。 –

関連する問題