Skip to content

Instantly share code, notes, and snippets.

@justislav
Created June 6, 2018 09:27
Show Gist options
  • Save justislav/092ac3375ceb3866126da11a0b7c274d to your computer and use it in GitHub Desktop.
Save justislav/092ac3375ceb3866126da11a0b7c274d to your computer and use it in GitHub Desktop.
group & collapse top levels tree branches, remove all previous groups from current sheet
/** @OnlyCurrentDoc */
function getGroup(sheet, rowIndex) {
var groupDepth = sheet.getRowGroupDepth(rowIndex);
if (groupDepth) return sheet.getRowGroup(rowIndex, groupDepth)
else return null
}
function remove_all_groups() {
var spreadsheet = SpreadsheetApp.getActive();
var sheet = spreadsheet.getActiveSheet();
var endRow = sheet.getLastRow();
for (var row = 1; row <= endRow; row++) {
var group = getGroup(sheet, row);
while (group) {
group.remove();
group = getGroup(sheet, row);
}
}
};
function group_rows() {
remove_all_groups();
var spreadsheet = SpreadsheetApp.getActive();
var sheet = spreadsheet.getActiveSheet();
var endRow = sheet.getLastRow();
var endCol = sheet.getLastColumn();
var row = 10;
var new_group_row = 10;
while (row <= endRow) {
var new_group = ! sheet.getRange(row, 1).isBlank()
if (new_group) {
if (row - new_group_row > 2) {
// sheet.getRange(row-2,2).setValue(new_group_row);
sheet.getRange(new_group_row+1, 1, row - new_group_row - 1).shiftRowGroupDepth(1);
getGroup(sheet,new_group_row+1).collapse();
}
new_group_row = row
}
row++;
}
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment