gpt4 book ai didi

javascript - 谷歌脚本: Retrieving Default Values for Filter

转载 作者:行者123 更新时间:2023-11-28 03:20:23 26 4
gpt4 key购买 nike

我想为电子表格中的列创建过滤器,然后检索为过滤器创建的默认条件值列表。我相信我的代码返回一个没有任何值的 Filter 对象。

function TestFilter(){
var spreadsheet = SpreadsheetApp.getActive();
var sheet = spreadsheet.getActiveSheet();
sheet.getRange(1, 2, sheet.getMaxRows(), 1).createFilter();
var filter = sheet.getFilter();
var output = filter.getColumnFilterCriteria(2).getCriteriaValues();
return output;
}

最佳答案

您可以使用以下函数来实现此目的:

如果您的过滤器设置为隐藏所有可能的值,您将通过使用函数 getHiddenValues() 获得您想要的值。

但是,如果您的过滤器仅隐藏值的子集,则这是不可能的。对于这种情况,您可以使用如下所示的 Google Apps 脚本函数来获取不同的值:

function getDistinctValues(range) {
var values = range.getValues();
var unique = {};

for (var i=0; i<values.length; i++) {
for (var j=0; j<values[i].length; j++) {
var key = values[i][j];
if (key !== null && key !== undefined && key !== '')
unique[key] = true;
}
}

return Object.keys(unique);
}

如果您尝试获取 A 列上的不同值,则它的用法是:

var distinctValues = getDistinctValues(sheet.getRange("A2:A"));

请注意,此函数将以字符串形式返回值。如果您想获取实际的数值而不是字符串,您可以简单地使用以下代码来解析这些值:

var distinctValues = getDistinctValues(sheet.getRange("A2:A")).map(parseFloat);

关于javascript - 谷歌脚本: Retrieving Default Values for Filter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59216381/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com