arrays - Google Apps 脚本:如果单元格不包含数组中的值,则从工作表中删除行
问题描述
在 Google 电子表格中,我有一个“数据表”。“J”列中的单元格包含“ColumnName”和“en”、“fr”、“de”等语言代码。我正在尝试删除除具有数组“valuesToLeave”值的行之外的所有行。
谁能告诉我这里哪里出错了?
function deleteRowsLangs() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = ss.getSheetByName('DataSheet');
var r = s.getRange('J:J');
var allValues = r.getValues();
var valuesToLeave = ["en", "fr", "de"];
for(var i=allValues.length-1;i>=0;i--)
if(allValues[i] != valuesToLeave[0]){
s.deleteRow(i+1);
} else {
//doNothing
}
}
解决方案
function deleteRowsLangs() {
const ss = SpreadsheetApp.getActive();
const sh = ss.getSheetByName('DataSheet');
const rg = sh.getRange(1,10,sh.getLastRow(),1);
const vs = rg.getValues().flat();
const vtl = ["en", "fr", "de"];
let d = 0;
vs.forEach((e,i) => {
if(!~vtl.indexOf(e)){sh.deleteRow(i + 1 - d++)}
});
}
推荐阅读
- python - Python 安装包:无法使用 pip install 命令安装包
- django - 如何通过 DRF 从 Django QuerySet 中将每一列作为一个列表
- r - 使用条件处理列表中的数据帧以子集行,使用 R 处理另一个数据帧
- java - 鉴于 Spring Boot 应用程序启用了 OAUTH,如何使 swagger-ui 可见?
- python - ValueError:无法将大小为 60000 的数组重塑为形状 (60000,784)
- jenkins - 一个詹金斯大师上同一插件的多个版本
- django - 密码字段属性未正确呈现注册页面 Django
- laravel - 如何处理 Laravel 中的查询异常?
- spring-cloud - 以编程方式动态地将实例添加到 SimpleDiscoveryClient - Spring Cloud
- java - 在单独的线程中初始化 Ktor 可以吗?