How about using Sheets API for your situation? I think that there are several solutions for your situation. So please think of this as one of them.
When you use this script, please enable Sheets API at Advanced Google Services and API console. You can see about how to enable Sheets API at here.
1. Retrieving depth information of groups
When the depth information of a sheet name of "Sheet1" is retrieved, the script is as follows.
var spreadsheetId = "### spreadsheetId ###";
var ranges = ["Sheet1"]; // Put sheet names.
var res = Sheets.Spreadsheets.get(spreadsheetId, {ranges: ranges, fields: "sheets/rowGroups"});
Logger.log(res)
- If you want to retrieve values from sheets of "Sheet1" and "Sheet2", please put
var ranges = ["Sheet1", "Sheet2"]
.
- If you also want to retrieve the information of
columnGroups
, please modify fields
to sheets(columnGroups,rowGroups)
.
2. Deleting all groups
For one of your goals, when you want to delete all groups (rowGroups and columnGroups), the script is as follows. In this script, the values retrieved above script are used.
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. Collapsing all groups
For another one of your goals, when you want to collapse all groups, the script is as follows. This sample script collapses all row groups in "Sheet1".
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
sheet.collapseAllRowGroups();
// sheet.collapseAllColumnGroups(); // If you want to collapse all column groups, please use this.
References:
If this was not what you want, I'm sorry.