使用Google Sheets API使用Java在Google Sheets中删除行

amrnrhlw  于 2023-03-28  发布在  Java
关注(0)|答案(1)|浏览(153)

我的Java程序和Google表格之间有一个接口。我想在条件为真时立即删除Google表格中的一行。
还有删除功能吗?我还没有在文档中找到任何东西.
到目前为止,我只找到了一个清除行的函数。看起来像这样:

ClearValuesRequest requestBody = new ClearValuesRequest();
  if (CALCNumber.toString().equals(BLNumber.get(0).toString())) {
       Sheets.Spreadsheets.Values.Clear request =
           sheets.spreadsheets().values().clear(spreadsheetId, "sheet1!A2:AA2", requestBody);       
       ClearValuesResponse deleteResponse = request.execute();
       System.out.print(deleteResponse);
  }
jvidinwx

jvidinwx1#

当Google从v3 API更改为v4 API时,我发现了这个文档,Delete a row请求使用spreadsheets.batchUpdate方法更改为deleteDimension
请求正文应具有以下结构:

  • 注意:例如,以下代码删除了Sheet1中的第二行。*
POST https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId:batchUpdate

       {
            "requests": [
                {
                    "deleteDimension": {
                        "range":  {
                            "sheetId": 0,
                            "dimension": "ROWS",
                            "startIndex": 1,
                            "endIndex": 2
                        }
                    }
                }
            ],
        }

这是一个关于请求应该是什么样子的示例:

DeleteDimensionRequest deleteRequest = new DeleteDimensionRequest() 
   .setRange(
        new DimensionRange()
            .setSheetId(0)
            .setDimension("Row")
            .setStartIndex(1)
  );

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

BatchUpdateSpreadsheetRequest body = new BatchUpdateSpreadsheetRequest().setRequests(requests);
sheetServices.spreadsheets().batchUpdate(SPREADSHEET_ID, body).execute()

参考:

  • 迁移删除行
  • 方法:spreadsheets.batchUpdate
  • 删除维度请求
  • 删除行或列

相关问题