Как насчет использования Sheets API в вашей ситуации?Я думаю, что есть несколько решений для вашей ситуации.Поэтому, пожалуйста, подумайте об этом как об одном из них.
Когда вы используете этот скрипт, пожалуйста, включите Sheets API в Advanced Google Services и консоли API.О том, как включить Sheets API, вы можете узнать по здесь .
1.Извлечение информации о глубине групп
Когда извлекается информация о глубине имени листа "Sheet1", скрипт выглядит следующим образом.
var spreadsheetId = "### spreadsheetId ###";
var ranges = ["Sheet1"]; // Put sheet names.
var res = Sheets.Spreadsheets.get(spreadsheetId, {ranges: ranges, fields: "sheets/rowGroups"});
Logger.log(res)
- Если вы хотите получить значенияиз листов "Лист1" и "Лист2", пожалуйста, укажите
var ranges = ["Sheet1", "Sheet2"]
. - Если вы также хотите получить информацию
columnGroups
, измените fields
на sheets(columnGroups,rowGroups)
.
2.Удаление всех групп
Для одной из ваших целей, когда вы хотите удалить все группы (rowGroups и columnGroups), сценарий выглядит следующим образом.В этом сценарии используются значения, полученные выше сценария.
var spreadsheetId = "### spreadsheetId ###";
var ranges = ["Sheet1"];
var res = Sheets.Spreadsheets.get(spreadsheetId, {ranges: ranges, fields: "sheets(columnGroups,properties/sheetId,rowGroups)"});
var reqs = res.sheets.map(function(e) {
var rows = e.rowGroups.map(function(f) {
var obj = {deleteDimensionGroup: {range: f.range}};
obj.deleteDimensionGroup.range.sheetId = e.properties.sheetId;
return obj;
});
var columns = e.columnGroups.map(function(f) {
var obj = {deleteDimensionGroup: {range: f.range}};
obj.deleteDimensionGroup.range.sheetId = e.properties.sheetId;
return obj;
});
return rows.concat(columns);
});
Sheets.Spreadsheets.batchUpdate({requests: reqs}, spreadsheetId);
3.Свертывание всех групп
Для достижения еще одной цели, когда вы хотите свернуть все группы, сценарий выглядит следующим образом.В этом примере сценария сворачиваются все группы строк в «Sheet1».
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
sheet.collapseAllRowGroups();
// sheet.collapseAllColumnGroups(); // If you want to collapse all column groups, please use this.
Ссылки:
Если это не то, что вы хотите, яизвините.