2017-09-27 5 views
0

아래 코드를 사용했습니다.Google 스프레드 시트 API로 시트를 복제하는 방법

BatchUpdateSpreadsheetRequest batchUpdateSpreadsheetRequest = new BatchUpdateSpreadsheetRequest(); 

DuplicateSheetRequest requestBody = new DuplicateSheetRequest(); 
requestBody.setNewSheetName("test"); 
requestBody.setSourceSheetId(sheetId); 

Sheets sheetsService = createSheetsService(); 

batchUpdateSpreadsheetRequest.set("duplicateSheet", requestBody); 
Sheets.Spreadsheets.BatchUpdate request = sheetsService.spreadsheets(). 
batchUpdate(spreadsheetId,batchUpdateSpreadsheetRequest); 
BatchUpdateSpreadsheetResponse response = request.execute(); 

나는 이것을 실행할 때 오류가 발생합니다.

Exception in thread "main" com.google.api.client.googleapis.json.GoogleJsonResponseException: 400 Bad Request 
{ 
    "code" : 400, 
    "errors" : [ { 
    "domain" : "global", 
    "message" : "Invalid JSON payload received. Unknown name \"duplicate_sheet\": Cannot find field.", 
    "reason" : "badRequest" 
    } ], 
    "message" : "Invalid JSON payload received. Unknown name \"duplicate_sheet\": Cannot find field.", 
    "status" : "INVALID_ARGUMENT" 
} 

내가 뭘 잘못하고 있니? 중복 된 시트를 만드는 올바른 방법은 무엇입니까?

답변

1

google documentation과 비슷한 내용을 통해이 문제를 극복 할 수있었습니다. 아래는 내가 사용한 코드입니다.

BatchUpdateSpreadsheetRequest batchUpdateSpreadsheetRequest = new 
BatchUpdateSpreadsheetRequest(); 

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

DuplicateSheetRequest requestBody = new DuplicateSheetRequest(); 
requestBody.setNewSheetName("test"); 
requestBody.setSourceSheetId(sheetId); 

requests.add(new Request().setDuplicateSheet(requestBody)); 

Sheets sheetsService = createSheetsService(); 

batchUpdateSpreadsheetRequest.setRequests(requests); 
Sheets.Spreadsheets.BatchUpdate request = 
      sheetsService.spreadsheets().batchUpdate(spreadsheetId, batchUpdateSpreadsheetRequest); 

BatchUpdateSpreadsheetResponse response = request.execute(); 
관련 문제