使用Google Scripts查找数据更改

时间:2014-02-11 18:16:48

标签: google-apps-script

我是编程和Google脚本的新手,但我决心学习并享受一些乐趣。我已经找到了一些基础知识,但已经陷入了死胡同,我希望这个社区可以帮助我度过难关。

我正在尝试创建一个报表生成器,用于从第三方提取数据并将其显示在Google表格中。数据进入并排序,但现在我想在每次更改信息时插入一个标题行(即报告中的几个项目发生在星期一,所以在星期一部分之前,我想插入一个标题为“星期一”的标题行)。

我相信我可以正确地获得标题格式,但我无法找出正确的代码来检测我的数据中的更改,以便我可以插入一个空行。这是我正在使用的代码部分。为此,会议日变量只是一周中的几天(即[周日,周日,周一,周二,周二,周二......])

var meetingday = sheet.getRange(3,7,rowindex).getValues(); 
for (var i=0; i<meetingday.length; i++) {
 var j=[i + 1]
 if ([i]!=[j]) {Logger.log(meetingday[i])};
 }

我想如果我可以让日志显示数据更改,那么我就可以开始编写将在该点插入空行的代码。现在,我得到的是整个阵列的列表。

非常感谢任何帮助。

谢谢, 迈克尔

更新的脚本

var meetingdays = sheet.getRange(3,7,rowindex).getValues();
var meetingdayinitial = meetingdays[0];
   for (i=0; i<meetingdays.length;i++) {
 if (meetingdays[i]!=meetingdayinitial) {
   Logger.log("insert blank row here");
   var meetingdayinitial = meetingdays[i];
   }
 }

1 个答案:

答案 0 :(得分:0)

这是初学者的代码,但它对我有用。此位脚本旨在查找每次Google电子表格的特定列中的数据发生更改时。 (即,您有一张按星期几排序的事件,并且您想知道星期一事件组的结束时间和周二事件的开始时间)。在我的脚本的早些时候,我按星期几对事件进行排序,然后这一点在列表中查找每个更改;我把它保存到一个我可以在以后使用的数组;在这种情况下,我在每次更改时添加一个格式化的标题行。希望这有帮助!

 var meetingdays = sheet.getRange(3,7,rowindex).getValues();
 var meetingdaycompare = meetingdays[0][0];
 var rowarray = [[0]];
 var j = 1;
  for (i=0; i<meetingdays.length; i++) {
    if (meetingdays[i][0]!=meetingdaycompare) {
     rowarray [j] = [i];
     j++;
     meetingdaycompare = meetingdays[i][0];
     }
   }