我们使用 Google Sheet API v4。我们想用空数据清除整个工作表。我们不想删除行/列。
- 不工作 UpdateCells 调用(通过 API 删除列): developers.google.com
- 工作 UpdateCells 调用(所有单元格): developers.google.com
我们使用 Google Sheet API v4。我们想用空数据清除整个工作表。我们不想删除行/列。
我可以通过使用此处记录的 clear 方法查看 rev607 来做到这一点。
ClearValuesRequest clearValuesRequest = new ClearValuesRequest();
// assumes you have a sheetservice initialized
sheetsService.spreadsheets().values().clear(spreadsheetId, "Sheet1", clearValuesRequest);
没有很好记录的关键见解是您可以只传递范围的工作表名称并清除工作表中的所有单元格。
我不知道这是否对其他人有帮助,但这就是我让它为我工作的方式:这应该清除你的整个工作表。我不记得为什么“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;
}
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;