【发布时间】:2023-02-10 21:19:26
【问题描述】:
我想根据每天更改的一组行及其长度(组的深度)自动在 google 工作表上对行进行分组。 如果您看到下面的图片,我希望将 A 列中所有带有 * 的行组合在一起。
这是我的代码,我首先删除以前存在的组,找到所有“组标题”并将它们放在名为索引的列表中,然后我尝试使用(索引,l)对行进行分组。然而,唯一创建的组是在第 4 行和第 5 行之间。
function GroupRows() {
var spreadsheet = SpreadsheetApp.getActive();
var sheet = spreadsheet.getSheetByName('Roadmap Live')
var range = sheet.getDataRange()
var source = sheet.getDataRange().getDisplayValues()
var vs = range.getValues()
var index = []
// remove groups before creating new ones
source.forEach((r,i)=> {
let d = sheet.getRowGroupDepth(i+1)
if (d>=1){
sheet.getRowGroup(i+1,d).remove()
}
})
//Find rows to group
for (var i = 1; i<source.length; i++){
if (source[i][0] == "-"){
// Logger.log(source[i][0])
index.push(i+1) //this collects all the rows that has * in them
}
}
Logger.log(index)
//Group rows
for(var i = 0;i<index.length-1;i++){
var rangetomodify = sheet.getRange(index[i],1)
var l = index[i+1]-index[i]-1
var k = index[i]
rangetomodify.shiftRowGroupDepth(1)
sheet.getRowGroup(index,l)
}
}
我想一定有一些我应该使用的地图功能,但我不确定如何实现它?
【问题讨论】:
标签: google-apps-script google-sheets