将JSON请求转换为Java Google sheet API V4

2024-05-23 17:46:09 发布

您现在位置:Python中文网/ 问答频道 /正文

在谷歌工作表API guide

我读到find请求(查找值为'X'的单元格)可以用JSON格式如下:

{
  "find": string,
  "replacement": string,
  "matchCase": boolean,
  "matchEntireCell": boolean,
  "searchByRegex": boolean,
  "includeFormulas": boolean,

  // Union field scope can be only one of the following:
  "range": {
    object(GridRange)
  },
  "sheetId": number,
  "allSheets": boolean,
  // End of list of possible types for union field scope.
}

请求可以用这个URL的形式发出 https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId。。。。。。。在

但我无法将其转换为JAVA代码

我发现的最接近的是一个论坛上的代码:

^{pr2}$

它缺少我期望从API得到的响应,让我知道工作表中的哪个单元格具有我要查找的值。在

谢谢


Tags: of代码apijsonfieldstring格式find
1条回答
网友
1楼 · 发布于 2024-05-23 17:46:09

看起来您只是部分复制了本页指南中的示例:https://developers.google.com/sheets/api/guides/batchupdate#example

您需要将FindReplaceRequest放入BatchUpdateSpreadsheetRequest(在requests字段中),并在Spreadsheets.BatchUpdate调用中发送它。在

完整的例子是:

List<Request> requests = new ArrayList<>();
// Change the spreadsheet's title.
requests.add(new Request()
        .setUpdateSpreadsheetProperties(new UpdateSpreadsheetPropertiesRequest()
                .setProperties(new SpreadsheetProperties()
                        .setTitle(title))
                .setFields("title")));
// Find and replace text.
requests.add(new Request()
        .setFindReplace(new FindReplaceRequest()
                .setFind(find)
                .setReplacement(replacement)
                .setAllSheets(true)));
// Add additional requests (operations) ...

BatchUpdateSpreadsheetRequest body =
        new BatchUpdateSpreadsheetRequest().setRequests(requests);
BatchUpdateSpreadsheetResponse response =
        service.spreadsheets().batchUpdate(spreadsheetId, body).execute();
FindReplaceResponse findReplaceResponse = response.getReplies().get(1).getFindReplace();
System.out.printf("%d replacements made.", findReplaceResponse.getOccurrencesChanged());

相关问题 更多 >