合并过滤器输出并删除awesome-table

时间:2017-08-03 17:08:38

标签: google-apps-script google-sheets

我使用awesome-table为不同的服务制作联系人列表。我想知道是否可以选择多个服务,合并输出并删除重复项。

源文件/工作表包含以下列:服务名称,名称&电子邮件。

| Service Name | name | email |

每项服务都有自己的联系信息(姓名和电子邮件)。 “服务名称”列设置为CategoryFilter。所以Awesome-table所做的是当选择一个服务时,它会显示相应的名称和电子邮件作为输出。它还允许选择多个服务名称,并输出与所选服务名称对应的多个名称和电子邮件。

目前,我的模板如下所示: Name输出列具有:

<div class="name">{{name}}</div>

“电子邮件收件人”列包含:

<div class="name" style="text-align: center;">{{email}}</div>

模板根据所选服务名称选择列的数据。我想知道如何编辑模板,以便它可以加入/合并输出并删除重复项。 I.E.,如果我选择服务1,服务2,服务3和服务4,它将具有以下输出:

Name    Email Recipients
john doe john@domain.com
jane doe jane@domain.com
riza doe riza@domain.com
jane doe jane@domain.com

我希望得到以下输出:

Name    Email Recipients
john doe john@domain.com
jane doe jane@domain.com
riza doe riza@domain.com

current output 这是我的源文件:https://docs.google.com/spreadsheets/d/147adG5RV1UfdKEHRPMnGCzGr8UtwBJ79Wvc5cEC4sss/edit?usp=sharing

1 个答案:

答案 0 :(得分:0)

尝试使用Tutorial:Removing Duplicate Rows in a Spreadsheet中提供的脚本。

function removeDuplicates() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var data = sheet.getDataRange().getValues();
  var newData = new Array();
  for(i in data){
    var row = data[i];
    var duplicate = false;
    for(j in newData){
      if(row.join() == newData[j].join()){
        duplicate = true;
      }
    }
    if(!duplicate){
      newData.push(row);
    }
  }
  sheet.clearContents();
  sheet.getRange(1, 1, newData.length, newData[0].length).setValues(newData);
}

此脚本首先通过删除工作表的现有内容来检索所有数据并完成,然后插入newData数组的内容。

或者,您也可以选择尝试此SO post中提供的建议解决方案。