1

我们使用 Google Sheet API v4。我们想用空数据清除整个工作表。我们不想删除行/列。

  1. 不工作 UpdateCells 调用(通过 API 删除列): developers.google.com
  2. 工作 UpdateCells 调用(所有单元格): developers.google.com
4

4 回答 4

6

这是电子表格 API 的Java 快速入门

然后,您将spreadsheets.batchUpdate用于清除工作表。留空fields并放置一个星号以指示 Sheets API 所有单元格都应为空/清除。以下正文请求如下所示:

{
  "requests": [
    {
      "updateCells": {
        "range": {
          "sheetId": 0
        },
        "fields": "*"
      }
    }
  ]
}

oauth 操场上快速尝试一下。

更新:这正在工作。它清除了我的电子表格。

于 2016-06-21T10:00:01.647 回答
5

我可以通过使用此处记录的 clear 方法查看 rev607 来做到这一点。

ClearValuesRequest clearValuesRequest = new ClearValuesRequest();
// assumes you have a sheetservice initialized 
sheetsService.spreadsheets().values().clear(spreadsheetId, "Sheet1", clearValuesRequest);

没有很好记录的关键见解是您可以只传递范围的工作表名称并清除工作表中的所有单元格。

于 2020-02-13T16:05:59.560 回答
3

我不知道这是否对其他人有帮助,但这就是我让它为我工作的方式:这应该清除你的整个工作表。我不记得为什么“sheetId”为 0,但也许它是工作表本身内工作表的索引。(就像你有标签一样?)老实说,我不记得了。该函数希望您传入您的 $service 对象和电子表格 ID。

function clearSheet($service, $spreadsheetID = 0){

$request = new \Google_Service_Sheets_UpdateCellsRequest([
    'updateCells' => [ 
        'range' => [
            'sheetId' => 0 
        ],
        'fields' => "*" //clears everything
    ]
  ]);
$requests[] = $request;

$requestBody = new Google_Service_Sheets_BatchUpdateSpreadsheetRequest();
$requestBody->setRequests($requests);
$response = $service->spreadsheets->batchUpdate($spreadsheetID, $requestBody);
return $response;
}
于 2018-10-05T17:50:52.873 回答
0

Java 示例:

        UpdateCellsRequest clearAllDataRequest = new UpdateCellsRequest();
        int allSheetsId = 0;
        String clearAllFieldsSpell = "*";
        GridRange gridRange = new GridRange();
        gridRange.setSheetId(allSheetsId);
        clearAllDataRequest.setRange(gridRange);
        clearAllDataRequest.setFields(clearAllFieldsSpell);
        BatchUpdateSpreadsheetRequest request = new BatchUpdateSpreadsheetRequest();
        Request clearAllDataRequest = new Request().setUpdateCells(clearAllDataRequest);
        request.setRequests(List.of(clearAllDataRequest));
        return request;
于 2019-08-30T11:49:53.217 回答