Google sheet API, 执行AddProtectedRangeRequest

Google sheet API, executing AddProtectedRangeRequest

基于:https://developers.google.com/sheets/api/samples/ranges

如何执行GooglesheetAPI,执行AddProtectedRangeRequest?

 void addRangeRestriction(final String sheetId, final Sheets sheetService) throws IOException {

    AddProtectedRangeRequest addProtectedRangeRequest = new AddProtectedRangeRequest();


    var gridRange = new GridRange();
        gridRange.setSheetId(1);
        gridRange.setStartColumnIndex(1);
        gridRange.setEndColumnIndex(1);
        gridRange.setStartRowIndex(2);
        gridRange.setEndRowIndex(2);

    var protectedRange = new ProtectedRange();
        protectedRange.setRange(gridRange);
        protectedRange.setWarningOnly(true);

    var request = new Request()
            .setAddProtectedRange(new AddProtectedRangeRequest()
                    .setProtectedRange(new ProtectedRange()
                            .setRange(gridRange)
                            .setRequestingUserCanEdit(false)));


    addProtectedRangeRequest.setProtectedRange(protectedRange);

    // TODO: ... ??
}

--

我可以做到

   var batchUpdateSpreadsheetRequest = new BatchUpdateSpreadsheetRequest();

像这样: return sheetService.spreadsheets().batchUpdate(sheetId, batchUpdateSpreadsheetRequest).execute();

但不适用于 AddProtectedRangeRequest 或 Request..one

BatchUpdateSpreadsheetRequest 接受要执行的请求列表。您可以将请求添加到 ArrayList,然后将其分配给 BatchUpdateSpreadsheetRequest.

您可以通过这种方式在单个 BatchUpdateSpreadsheetRequest 中按顺序添加所有要执行的请求。请求将按照它们在列表中指定的顺序应用。如果任何请求无效,则不会应用任何请求。

List<Request> requests = new ArrayList<>();
requests.add(request)

var batchUpdateSpreadsheetRequest = new BatchUpdateSpreadsheetRequest();
batchUpdateSpreadsheetRequest.setRequests(requests);

return sheetService.spreadsheets()
    .batchUpdate(sheetId, batchUpdateSpreadsheetRequest)
    .execute();