Extraire des lignes de données de feuille de calcul à l'aide de google app script
Je suis en utilisant Google app script à l'écriture de données dans une feuille de calcul. Maintenant, je voudrais récupérer les valeurs à partir d'Excel, ce qui correspond à des conditions (par exemple., filtrés par date, par nom d'utilisateur) et les afficher avec l'app script.
Ma feuille de calcul a
+-------------+-----------+----------------------+
| 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 |
+-------------+-----------+----------------------+
Maintenant, je veux filtrer les données pour 2012-05-02
sur la date et raja
sur le nom d'utilisateur et de les afficher à l'aide d'étiquettes dans l'app-script (qui est en cours d'exécution en tant que service web).
Toutes mes recherches de solution de retour à l'aide de SpreadsheetApp.getActiveSheet().getDataRange();
qui je pense n'est pas optimisé de façon à afficher un enregistrement de plus de 1000 lignes dans la feuille.
MODIFIER
Maintenant, je suis en utilisant .getValues()
seulement. Et les données présentées ici est pour l'échantillon; mon véritable feuille de colonne 15 et 5000+ lignes pour l'instant. Et finalement, il va croître à des millions comme c'est une feuille de temps de l'application. Je me demande est-il un autre moyen pour getValues()
de lignes filtrées?
L'application de =Filter
formule sur un tmp cellule sera également un problème, car le script peut être utilisé simultanément par plusieurs personnes.
- Malheureusement il n'y a aucun moyen de getValues avec filtre appliqué. Mais si vos données croître à des millions de lignes, le script ne va pas être votre principale préoccupation, comme une feuille de calcul ne peut contenir 400 milliers de cellules.
Vous devez vous connecter pour publier un commentaire.
La façon la plus simple, et celui que je connais, est de :
obtenir les valeurs dans un Tableau à l'aide
puis de faire une boucle
dans cette boucle pour vérifier si la date (
data[i][0]
) est égal à celui que vous cherchez, et si le nom (data[i][1]
) est égal à celui que vous êtes à la recherche pour trop. Et de le pousser à un tableaupuis d'avoir toutes vos données dans ce tableau, vous pouvez remplir un panen de l'Interface utilisateur avec l'étiquette à l'aide d'une boucle for
Bien, vous pouvez envisager l'utilisation d'une cellule et d'utiliser la "Requête" de la formule sur elle. Supposons Date est au niveau de la Colonne A, nom d'utilisateur = Colonne B, les Commentaires sont la Colonne C, tandis que la cellule vide est D1, votre script devrait ressembler à ceci: