Мы используем Google Sheet API v4. Мы хотим очистить весь лист пустыми данными. Мы не хотим удалять строки / столбцы.
Google Spreadsheet API: очистите все ячейки на листе
Ответы (4)
Вот Краткое руководство по Java для Spreadsheet API.
Затем вы будете использовать spreadsheets.batchUpdate
, чтобы очистить листы. Оставьте fields
пустым и поместите звездочкой, чтобы указать API Таблиц, что все ячейки должны быть пустыми / очищенными. Следующий запрос тела выглядит так:
{
"requests": [
{
"updateCells": {
"range": {
"sheetId": 0
},
"fields": "*"
}
}
]
}
Попробуйте это быстро на игровой площадке oauth.
ОБНОВЛЕНИЕ: сейчас это работает. Это очистило мою таблицу.
Я не знаю, поможет ли это кому-то еще, но вот как у меня это сработало: это должно очистить весь ваш лист. Я не помню, почему «sheetId» равен 0, но, возможно, это указатель на листы внутри самого листа. (например, как у вас есть вкладки?) Я, честно говоря, не помню. Функция ожидает, что вы передадите свой объект $ service и идентификатор электронной таблицы.
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;
}
Мне удалось это сделать, используя документированный метод clear вот смотрим на rev607.
ClearValuesRequest clearValuesRequest = new ClearValuesRequest();
// assumes you have a sheetservice initialized
sheetsService.spreadsheets().values().clear(spreadsheetId, "Sheet1", clearValuesRequest);
Ключевой вывод, который не был хорошо документирован, заключается в том, что вы можете передать только имя листа для диапазона, и это очистит ВСЕ ячейки на листе.
Пример 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;