2016-05-24 5 views
0

Ich verwendeGoogle-Tabelle Scripts: wie Datarange gefiltert wird

sheet.getDataRange() 

alle Zellen zu erhalten. Es holt alle Zeilen auch versteckt (das wurde gefiltert).

Wie kann ich nur nicht versteckte Zeilen (die Zeilen, die Benutzer sehen, wenn er/sie eine Tabelle öffnet) bekommen?

Vielen Dank.

Antwort

0

Tatsächlich gibt es bereits ein Problem auf Integration of Tools/Filter with google apps script und basierend auf diesem Problem Tracker wurde diese Funktion noch nicht hinzugefügt.

Sie können jedoch alternative Lösungen in diesem SO post - Google Script Filter Or Hide Row versuchen. Eine der Lösungen ist die Reduzierung eines Datensatzes mit einem Array und einer hide Methode, wie unten gezeigt.

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)); 
    } 
    } 
} 

Ich hoffe, eine der angegebenen Lösungen funktioniert für Sie. :)

+0

Danke für die Antwort. Ich brauche etwas wie 'row.isHidden()'. Aber es ist auch nicht implementiert. Ich habe ähnliche gefunden [Beitrag auf SO] (http://stackoverflow.com/questions/6793805/how-to-skip-hidden-rows-while-iterating-through-google-spreadsheet-w-google-app) – Anton

Verwandte Themen