[google-apps-script] Abrufen von Zeilen aus Tabellenkalkulationsdaten mithilfe von Google App Script



Answers

Nun, Sie können eine Zelle verwenden und die Formel "Abfrage" verwenden. Nehmen wir an, das Datum ist in Spalte A, Benutzername = Spalte B, Kommentar ist Spalte C, während die leere Zelle D1 ist, Ihr Skript sieht so aus:

SpreadsheetApp.getActiveSheet().getRange("D1").setFormula('Query(A:C,"SELECT A,B,C WHERE B="' + "SomeOne'" + ',1)'; //filter the data and populate to D1 onwards    
SpreadsheetApp.getActiveSheet().getRange("D:F").getValues();//this is the filtered data
Question

Ich verwende das Google App-Skript, um Formulardaten in eine Tabelle zu schreiben. Nun möchte ich die Werte aus Excel holen, die Bedingungen entsprechen (zB nach Datum, Benutzername filtern) und sie mit App-Skript anzeigen.

Meine Tabelle hat

+-------------+-----------+----------------------+
| Date        | Username  | Comment              |
+-------------+-----------+----------------------+
| 2012-05-02  | palani    | My first comment     |
| 2012-05-02  | raja      | My second comment    |
| 2012-05-03  | palani    | My third comment     |
| 2012-05-03  | raja      | My fourth comment    |
+-------------+-----------+----------------------+

Jetzt möchte ich die Daten für 2012-05-02 nach Datum filtern und nach Benutzernamen filtern und sie mit Labels in app-script (das als Webservice läuft) anzeigen.

Alle meine Suchanfragen geben die Lösung mit SpreadsheetApp.getActiveSheet().getDataRange(); was ich denke, ist nicht optimierte Weise, einen Datensatz von 1000 + Zeilen im Blatt anzuzeigen.

BEARBEITEN

Im Moment verwende ich nur .getValues() . Und die hier gezeigten Daten dienen als Beispiel; mein reales Blatt hat vorerst 15 Spalten und 5000+ Zeilen. Und schließlich wird es zu Millionen anwachsen, da dies eine Arbeitszeittabellenanwendung ist. Ich frage mich, gibt es eine andere Möglichkeit, um getValues() von gefilterten Zeilen zu erhalten?

Die Anwendung von =Filter auf eine Tmp-Zelle ist ebenfalls ein Problem, da das Skript gleichzeitig von der Anzahl der Personen verwendet werden kann.




Related