arrays - Google Apps 脚本复制/粘贴过滤的数据集
问题描述
我一直在尝试编写一个脚本,该脚本只需获取过滤后的数据,复制它,然后将其粘贴到另一个工作表中。我似乎没有做任何事情。使用我在网上找到的下面的代码,它应该可以工作,但我不断收到一个错误,指出该范围内的行数必须至少为 1。但是,我有 A7:R500 范围内的数据,我是只过滤掉空格和'W'。我的这种想法正确吗?
function copyPaste(){
var sheet = SpreadsheetApp.getActiveSheet();
var values = sheet.getRange('A7:R500').getValues();
var hiddenValues = ['', 'W'];
values = values.filter(function(v){
return hiddenValues.indexOf(v[4]) == 'W';
});
sheet.getRange(1,21, values.length, 18).setValues(values);
}
解决方案
解决方案:
由于您已经在使用过滤器数组,因此您可以与hiddenValues.indexOf(v[4])
-1 进行比较以过滤掉空白和“W”。
此外,由于您的目标是将结果粘贴到不同的工作表中,因此您需要同时定义源工作表和目标工作表。创建一个工作表并将其名称插入new sheet name
下面代码中的标记中。
示例代码:
function copyPaste() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet1 = ss.getActiveSheet();
var sheet2 = ss.getSheetByName('<new sheet name>');
var values = sheet1.getRange('A7:R500').getValues();
var hiddenValues = ['', 'W'];
values = values.filter(function(v){
return hiddenValues.indexOf(v[4]) == -1;
});
sheet2.getRange(1,21, values.length, 18).setValues(values);
}
参考:
推荐阅读
- ios - 使用 DataModel 时出现未解决的标识符错误?
- php - 作曲家:在 phpseclib SSH2 中找不到命令
- php - PHP 单一请求配置文件
- python - 我的 Job 模型的变量未显示
- java - Spring boot rest api - 我可以在不为响应对象创建任何 java 类(DTO 或实体)的情况下获得响应吗?
- kaizala-action - 可以将数据从 kaizala 数据推送到 SQL Server 数据库
- css - 如何删除在打开垫选择模式期间创建的未知属性
- reactjs - 如何创建一个新的 React 组件返回 null 但仍然访问钩子
- wildfly-10 - 在undertow中使用表达式过滤器不起作用
- algorithm - 在给定范围内查找缺失范围