如果脚本检测到日期不同,我试图找到一种在Google工作表中插入空白行的方法。从表面上看似乎很简单,但我一直试图找到解决方案。
以下是数据的示例:
Month Brand Size Impressions 2017/1 Nike 300x25 500 2017/1 Nike 300x250 300 2017/2 Nike 728x90 100 2017/2 Adidas 300x250 400
我需要做的是,当脚本检测到2017/1和2017/2之间的变化时,它将插入两个空白行,以便将月份分开。
像这样:
Month Brand Size Impressions 2017/1 Nike 300x25 500 2017/1 Nike 300x250 300 2017/2 Nike 728x90 100 2017/2 Adidas 300x250 400
显然,这可以手动完成,但工作表是从DFP动态填充的,并且是一份自动报告。
有人有什么想法吗?
答案 0 :(得分:1)
我第一次跑出去了。我实际上格式化了年月格式的日期列,以确保getMonth()函数能够正常工作。
function spacesIntoChanges()
{
var ss=SpreadsheetApp.getActive();
var sh=ss.getSheetByName('Sheet1');
var rg=sh.getDataRange();
var vA=rg.getValues();
var spaces=[];
for(var i=2;i<vA.length;i++)
{
if(vA[i][0] && vA[i-1][0] && new Date(vA[i][0]).getMonth() != new Date(vA[i-1][0]).getMonth())//
{
spaces.push(i);
}
}
spaces.sort(compareNumbers);
for(var i=vA.length-1;i>=2;i--)
{
if(spaces.indexOf(i)>-1)
{
sh.insertRows(Number(i+1), 2);
}
}
}
function compareNumbers(a,b)
{
return b-a;
}
执行前的工作表:
执行后的表格:
添加了一些不间隔的行:
然后再次执行: