构建一个 Apps 脚本库,用于移除电子表格数据中的重复行。
目标
- 设置脚本。
- 运行脚本。
前提条件
如需使用此示例,您需要满足以下前提条件:
- Google 账号(Google Workspace 账号可能 需要管理员批准)。
- 可以访问互联网的网络浏览器。
设置脚本
如需构建库,请按以下步骤操作:
- 登录您的 Google 账号。
- 如需打开脚本编辑器,请访问 script.google.com。
- 点击左上角的新建项目。
删除脚本编辑器中的所有代码,并粘贴以下代码。
点击“保存”
。
点击左上角的未命名项目。
将脚本命名为移除重复行,然后点击重命名。
点击部署 > 新建部署。
在选择类型旁边,点击“启用部署类型”
> 库。
输入库说明,例如移除重复行。任何人 可以查看此说明。
点击部署。
点击左侧的项目设置
。
在 IDs 下,复制脚本 ID,以便在后续步骤中使用。
运行脚本
要使用某个库,您必须至少拥有该库的查看权限 Apps 脚本项目。自创建库以来 所需权限 使用。如果您想允许他人使用该库,请授予对方查看权限 (适用于 Apps 脚本项目)。
如需使用该库,请按以下步骤操作:
- 打开包含重复行数据的 Google 表格电子表格。要使用 示例电子表格,请为示例重复行电子表格创建副本。
- 依次点击扩展程序 > Apps 脚本。
- 点击库旁边的“添加库” 。
- 在脚本 ID 部分,粘贴库 Apps 脚本中的脚本 ID 您在上一部分中复制的项目。
- 点击查找。
- 在版本部分中,选择 1。
- 点击添加。
删除脚本编辑器中的所有代码,并粘贴以下代码。
function runLibrary() { Removeduplicaterows.removeDuplicates(); }
在函数下拉菜单中,选择 runLibrary。
点击运行。
返回电子表格,查看没有重复行的更新数据。
查看代码
如需查看此解决方案的 Apps 脚本代码,请点击查看源代码 如下:
查看源代码
首先,脚本对电子表格进行单次调用,以检索所有 数据。您可以选择逐行读取工作表,但 JavaScript 操作 比与其他服务(例如电子表格)交谈要快得多。越少 调用,速度越快。这一点很重要 最长运行时间为 6 分钟。
变量 data
是一个 JavaScript 二维数组,其中包含
工作表中的所有值。newData
是一个空数组,其中
放置所有非重复行。
第一个 for
循环遍历 data
中的每一行
二维数组。对于每一行,第二个循环会测试另一行
newData
数组中已存在匹配数据。如果不是
该行会被推送到 newData
数组中。
最后,该脚本会删除工作表的现有内容,并将
newData
数组的内容。
修改
您可以根据需要对库进行任意修改。下面是 (可选修改)。
移除某些列中包含匹配数据的行
您可能希望移除符合以下条件的行,而不是完全匹配的行: 匹配数据。为此,您可以更改 条件语句。
在示例代码中,更新以下行:
if(row.join() == newData[j].join()){ duplicate = true; }
将该行替换为以下代码:
if(row[0] == newData[j][0] && row[1] == newData[j][1]){ duplicate = true; }
每当两行包含 将相同的数据放在工作表的第一列和第二列中。
贡献者
此示例由 Google 开发者专家 Romain Vialard 创建。关注 Romain 的 Twitter 账号 @romain_vialard。
此示例由 Google 在 Google 开发者专家的帮助下进行维护。