google-apps-script - 有没有办法通过脚本只选择和删除过滤(可见)条目?
问题描述
基本上我想应用一个或多个过滤器,然后选择所有可见的内容并删除选定的行,所有这些都必须通过脚本完成。但是,我在任何地方都看不到这样的选项(Excel 有特殊的 go to and select only visible)。例如,一个会话可能从第 7 行开始,我可以从第 7 行及以下记录宏...但是如果另一个数据集显示从 2 开始的可见行。这将如何受到影响?有没有一种简单的方法来选择所有可见的东西?
解决方案
希望库珀的回答有所帮助
我做过类似的事情,我使用了一些简化的版本 -
var j = spreadsheet.getLastRow();
var s = SpreadsheetApp.getActive().getActiveSheet();
for (var i = j; i > 1; i--) {
if (!s.isRowHiddenByFilter(i)) {
s.deleteRow(i);
}
}
我从下到上的原因是如果会从上到下然后说第 2,3,4 行是否可见并且我删除了第 2 行 - 那么第 3 行现在变成第 2 行并被循环跳过到删除行。
让我知道事情的后续。
编辑: 请参阅下面的代码以了解您的最后一行与您使用过滤器的最后一行数据不同并且您只想删除特定列的数据的情况
var Avals = spreadsheet.getRange("B1:B").getValues();
var j = Avals.filter(String).length;
var s = SpreadsheetApp.getActive().getActiveSheet();
for (var i = j; i > 1; i--) {
if (!s.isRowHiddenByFilter(i)) {
s.getRange('A'+i+':J'+i).deleteCells(SpreadsheetApp.Dimension.ROWS);
//here A is my starting column, and J is my ending column
}
}
推荐阅读
- python - Django prefetch_related 性能 - to_attr 不适用于嵌套查找
- django - 如何从重定向中获取 Django 中的请求数据?
- spring-boot - 如何使用 RestTemplate 调用多个主机
- amazon-web-services - 如何在 AWS HTTP API Gateway 和 Fargate/ECS 上空闲/重新部署后修复间歇性 503 服务不可用?
- flutter - 我需要在 Flutter 中重现一个 Floating Action Button,它可以转换成一个横跨整个屏幕的新表面
- docker - denied:请求的资源访问被拒绝——Jenkins 控制台日志
- c# - 如何将文件 URL 转换为文件路径以作为参数传递给可执行文件
- apache - 将本地IP重定向到公共IP?
- javascript - 如何为JS添加淡入/淡出效果(-类)
- api - Microsoft Graph API 创建事件始终使用 UTC 时区创建会议