Google SpreadSheet 脚本:如何过滤 DataRange
Google SpreadSheet Scripts: how get filtered DataRange
我正在使用
sheet.getDataRange()
获取所有单元格。它获取所有甚至隐藏的行(已过滤)。
如何只获取非隐藏行(用户在 he/she 打开电子表格时看到的行)?
谢谢。
实际上,Integration of Tools/Filter with google apps script 上已经存在问题,并且根据该问题跟踪器,尚未添加此功能。
但是,您可以尝试此 SO post - Google Script Filter Or Hide Row 中给出的替代解决方案。给出的解决方案之一是使用数组和 hide
方法减少一组数据,如下所示。
function MasterFilter() {
var headers = 4; // # rows to skip
var sheet = SpreadsheetApp.getActiveSheet();
var maxRows = sheet.getMaxRows();
//show all the rows
sheet.showRows(1, maxRows);
//get data from column B
var data = sheet.getRange('B:B').getValues();
//iterate over all rows
for(var i=headers; i< data.length; i++){
if(data[i][0] == false){
sheet.hideRow(sheet.getRange(i+1,1));
}
}
}
我希望给出的解决方案之一对您有用。 :)
我正在使用
sheet.getDataRange()
获取所有单元格。它获取所有甚至隐藏的行(已过滤)。
如何只获取非隐藏行(用户在 he/she 打开电子表格时看到的行)?
谢谢。
实际上,Integration of Tools/Filter with google apps script 上已经存在问题,并且根据该问题跟踪器,尚未添加此功能。
但是,您可以尝试此 SO post - Google Script Filter Or Hide Row 中给出的替代解决方案。给出的解决方案之一是使用数组和 hide
方法减少一组数据,如下所示。
function MasterFilter() {
var headers = 4; // # rows to skip
var sheet = SpreadsheetApp.getActiveSheet();
var maxRows = sheet.getMaxRows();
//show all the rows
sheet.showRows(1, maxRows);
//get data from column B
var data = sheet.getRange('B:B').getValues();
//iterate over all rows
for(var i=headers; i< data.length; i++){
if(data[i][0] == false){
sheet.hideRow(sheet.getRange(i+1,1));
}
}
}
我希望给出的解决方案之一对您有用。 :)