我是个新手,正在尝试做与 Only get non-filtered values for Google App Script getRange 相同的事情 - 获取所有未隐藏的行,而不使用添加的列。使其通用,这样无论使用哪些字段来隐藏行,我都只会对非隐藏行进行操作。我一直在玩 isRowHiddenByFilter() 和 isRowHiddenByUser() 但没有得到它。要获取所有未过滤的行,我是否需要检查 isRowHiddenByFilter() 和 isRowHiddenByUser() 是否均为 false?
上面的代码似乎应该适用于类似的情况(不确定如何指定 NOT):
for(var i=0;i<range.length;i++){
if (NOT range.isRowHiddenByFilter){
filter.push(range[i][0])
}}
最佳答案
流程:
- 获取所有值并使用 Array.filter过滤掉隐藏行
示例脚本:
const getVisibleValues_ = (shtName, rngString, sheet, range) => {
sheet = sheet || SpreadsheetApp.getActive().getSheetByName(shtName);
return (range || sheet
.getRange(rngString))
.getValues()
.filter(
(_, rowIdx) =>
!sheet.isRowHiddenByFilter(rowIdx + 1) &&
!sheet.isRowHiddenByUser(rowIdx + 1)
);
};
const test1 = () => console.info(getVisibleValues_('Sheet1', 'B1:B70'));
关于javascript - 仅使用 isRowHiddenByFilter 或 isRowHiddenByUser 获取 Google App Script getRange 的未过滤值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61306254/