Comment accéder à des données sur les différents feuille de calcul Google via Google Apps Script?
Je suis en train d'écrire un Google Apps Script sur mon Site Google, et suis en train d'utiliser des données fournit sur 2 onglets différents dans une feuille de calcul Google. De ce que j'ai cru comprendre de la documentation que j'ai pu utiliser toutes les méthodes disponibles dans le SpreadsheetApp
classe sur un des Sites de script en utilisant simplement l' openById()
méthode.
En tout cas voici ce que j'ai essayé de faire
function doGet(e) {
var doc = SpreadsheetApp.openById(SPREADSHEET_ID_GOES_HERE).getActiveSheet();
SpreadsheetApp.setActiveSheet(doc.getSheetId()[1]);
//....
}
Je reçois le message d'erreur
Ne peut pas trouver la méthode setActiveSheet(. (ligne 4)
Je suis en tirant mon travail hors de ce lien: Stockage des Données dans des feuilles de calcul Google et aussi l'Interface utilisateur de Service de la section inscrites en vertu de la création d'Interfaces Utilisateur.
Que tout le monde voit ce que je fais de mal dans ces deux lignes?
OriginalL'auteur Mathitis2Software | 2012-07-30
Vous devez vous connecter pour publier un commentaire.
setActiveSheet doit être utilisé uniquement avec la feuille de calcul affichée par l'INTERFACE utilisateur, une feuille de dans une feuille de calcul que vous avez ouvert dans votre navigateur.
Avec SpreadsheetApp.openById vous ouvrez une feuille de calcul pour l'accès à ses données, mais il ne veut pas s'ouvrir dans votre navigateur. Il n'a pas une INTERFACE utilisateur.
J'ai trouvé ce commentaires dans https://developers.google.com/apps-script/class_spreadsheetapp?hl=es-ES#openById :
Quelques exemples supposent que votre script est en cours d'exécution dans votre feuille de calcul. Ce n'est pas votre cas, car vous exécutez un script en tant que service, qui devrait avoir sa propre Interface Utilisateur.
utilisez simplement getSheetByName ("le nom de la feuille"), par défaut c'est "Feuil1" si vous l'avez renommé ou si vous n'êtes pas l'utilisation de l'anglais... par exemple, en français, la valeur par défaut est 'Feuille1'
getSheets() vous apportera un tableau avec toutes les feuilles de la feuille de calcul.
Je ne les suivants, fonctionne très bien, même lorsque la feuille de calcul n'est pas affiché. feuille de calcul.setActiveSheet(liveSheet); feuille de calcul.deleteActiveSheet();
OriginalL'auteur Alejandro Silvestri
Je pense que @megabyte1024 corrige les erreurs de syntaxe, mais en réponse à votre commentaire @YoArgentina:
Cette sorte d'aide?
Êtes-vous sûr d' pas à l'aide de
var doc = SpreadsheetApp.openById(SPREADSHEET_ID_GOES_HERE).getActiveSheet();
comme dans l'original de votre post? Avec le code dans ce post,ss
doit être un objet feuille de calcul, pas un objet de Feuille.Oui, vous avez raison à 100%. J'ai complètement raté. Merci beaucoup.
OriginalL'auteur AdamL
Il y a au moins un problème dans ces deux lignes. Le 1er est que le setActiveSheet paramètres de la méthode est une Feuille de la classe de l'objet et de la getSheetId méthode renvoie une valeur de type entier. Par la façon dont cette méthode (getSheetId) est ce n'est pas documenté. Le 2ème problème peut se produire si le SpreadsheetApp n'a pas de feuille de calcul active. Dans ce cas, il est le "s'il vous Plaît sélectionnez une feuille de calcul active en premier." erreur. Utiliser le SpreadsheetApp.setActiveSpreadsheet méthode pour définir une feuille de calcul active.
OriginalL'auteur megabyte1024
Vous avez besoin pour accéder à chaque feuille séparément.
Il semble que je n'ai pas accès à cette méthode par le biais du service autonome. Il semble que j'ai utiliser getSheetID(), getSheetName(), et getSheetValues()
OriginalL'auteur James Ferreira