Google Apps Script FR
Google Apps Script FR
#google-
apps-script
Table des matières
À propos 1
Remarques 2
Examples 2
Installation ou configuration 2
Types de scripts 3
Bonjour le monde 4
Introduction 6
Examples 6
Remarques 7
Examples 7
Introduction 13
Examples 13
Exemple de base 14
Chapitre 5: DriveApp 15
Examples 15
Créer un nouveau fichier dans Google Drive d'un certain type Mime 15
Récupère tous les dossiers - place les dossiers dans un jeton de continuation - puis récup 16
Obtenez tous les fichiers - mettez-les dans un jeton de continuation - puis récupérez-les 16
Ajouter un dossier au lecteur racine 17
Remarques 20
Examples 20
Paramètres 21
Examples 21
Récupère les fichiers par type de fichier avec la chaîne correspondante dans le nom du fic 21
Remarques 23
Examples 23
Syntaxe 24
Paramètres 24
Remarques 24
Examples 24
Introduction 26
Examples 26
Connexion à un projet Firebase dans GAS et transfert de données de Google Spreadsheet vers 26
Prenons maintenant un exemple pour lire et écrire des données à partir de Firebase. 28
Vous avez maintenant inséré le firebaseURL et la clé secrète. Maintenant, vous êtes tous p 30
Remarques 32
Examples 32
Introduction 33
Examples 33
Chapitre 13: Script Google App Web à télécharger automatiquement à partir de Google Drive 39
Introduction 39
Remarques 39
Examples 39
forms.html 39
code.gs 40
Comment ça marche 41
Remarques 44
Examples 44
Drap 44
Remarques 47
Examples 47
Créer un nouveau fichier dans Google Drive d'un certain type Mime 47
Récupère tous les dossiers - place les dossiers dans un jeton de continuation - puis récup 48
Obtenez tous les fichiers - mettez-les dans un jeton de continuation - puis récupérez-les 49
Crédits 50
À propos
You can share this PDF with anyone you feel could benefit from it, downloaded the latest version
from: google-apps-script
It is an unofficial and free google-apps-script ebook created for educational purposes. All the
content is extracted from Stack Overflow Documentation, which is written by many hardworking
individuals at Stack Overflow. It is neither affiliated with Stack Overflow nor official google-apps-
script.
The content is released under Creative Commons BY-SA, and the list of contributors to each
chapter are provided in the credits section at the end of this book. Images may be copyright of
their respective owners unless otherwise specified. All trademarks and registered trademarks are
the property of their respective company owners.
Use the content presented in this book at your own risk; it is not guaranteed to be correct nor
accurate, please send your feedback and corrections to [email protected]
https://riptutorial.com/fr/home 1
Chapitre 1: Démarrer avec google-apps-script
Remarques
L'aperçu officiel de Google Apps Script est publié à l' adresse http://www.google.com/script/start ,
à partir de là.
Google Apps Script est un langage de script JavaScript en nuage qui permet
d’automatiser facilement les tâches sur les produits Google et les services tiers et de
créer des applications Web.
De https://developers.google.com/apps-script/guides/services/#basic_javascript_features
Apps Script est basé sur JavaScript 1.6 , plus quelques fonctionnalités de 1.7 et 1.8 .
Outre les services Google intégrés et avancés, de nombreuses fonctionnalités
JavaScript de base sont disponibles: vous pouvez utiliser des objets communs tels que
Array , Date , RegExp , etc. , ainsi que les objets globaux Math et Object . Cependant,
le code Apps Script s'exécutant sur les serveurs de Google (pas côté client, sauf pour
les pages de service HTML ), les fonctionnalités basées sur navigateur telles que la
manipulation DOM ou l'API Windows ne sont pas disponibles.
Examples
Installation ou configuration
Commencez votre premier script en allant sur script.google.com . Vous pouvez également
accéder à Google Apps Script sous les tools -> Script editor... de nombreuses applications
Google, c.-à-d. Docs, Sheets, Forms, etc. Google Apps Script peut également être ajouté
directement à votre Google Drive avec la fonctionnalité Connect more apps.. .
Pour que les scripts d'application s'exécutent, ils doivent contenir un fichier code.gs. Le fichier
code.gs doit contenir une fonction nommée doGet (scripts autonomes) ou une fonction onOpen
(scripts addon). Les démarrages rapides dans la documentation contiennent des exemples.
Si une API est activée dans le script d'application, elle doit également être activée dans la console
du développeur. Cependant, la console des développeurs contient des API qui peuvent être
activées mais n'apparaissent pas dans l'interface du script d'application. Par exemple,
Marketplace SDK doit être activé dans la console des développeurs avant que l'application puisse
être publiée sur Google Play Store ou sur un déploiement à l'échelle du domaine de la suite G.
https://riptutorial.com/fr/home 2
Pour les applications Google pour l'éducation / le travail / le gouvernement, il existe des
paramètres dans la console d'administration du domaine qui peuvent être ajustés pour autoriser
ou interdire l'exécution de scripts d'application.
Types de scripts
• Autonome
• Lié à Google Apps
• Applications Web
Script autonome
Les scripts autonomes ne sont liés à aucune application Google, par exemple Docs, Sheets ou
Forms, etc. Vous pouvez créer un script autonome en visitant script.google.com ou en connectant
un script d'application Google à Google Drive. Le script autonome peut être utilisé pour
programmer des applications Google indépendamment, peut être utilisé comme une application
Web ou peut être configuré pour s'exécuter automatiquement à partir d'un déclencheur installable.
Voir la documentation du script autonome.
Script lié à Google Apps, également appelé script lié à un conteneur; Contrairement aux scripts
autonomes, ils sont liés aux applications Google, par exemple Google Docs ou Google Sheets,
etc. Vous pouvez créer un script lié à un conteneur en sélectionnant des tools> Script editor de
tools> Script editor dans Google App. Certaines fonctionnalités telles que les boîtes de dialogue,
les invites, les menus et la barre latérale ne sont fournies que par les scripts liés aux conteneurs.
En outre, un script lié à un conteneur est utilisé pour créer des modules complémentaires Google .
Voir la documentation des scripts liés aux conteneurs.
Applications Web
Google App Script peut être utilisé en tant qu'application Web accessible par navigateur. Web App
peut fournir une interface utilisateur sur le navigateur et utiliser des applications Google, par
exemple des documents, des feuilles, etc. Les scripts et scripts autonomes liés à Google Apps
peuvent être transformés en applications Web. Pour qu'un script fonctionne comme une
application Web, le script doit répondre à deux exigences:
Les fonctions Inshort, doGet() et doPost() fonctionnent respectivement comme les gestionnaires de
requêtes et de requêtes HTTP.
Pour plus de détails sur les applications Web, consultez la documentation officielle.
https://riptutorial.com/fr/home 3
Essayez d'exécuter votre code à partir de la barre d'outils, comme indiqué ci-dessous:
Dans votre code, si vous avez plus d'une fonction, vous devez indiquer la fonction que vous
souhaitez utiliser avant de l'exécuter. Par exemple :
Vous pouvez également appuyer sur ctrl + r depuis votre clavier pour exécuter le code. Il
enregistrera d'abord le code, s'il n'est pas enregistré, puis l'exécutera. Mais pour que cela
fonctionne, vous devez avoir sélectionné la fonction, comme indiqué dans l'image ci-dessus.
De plus, si votre script est appelé par des activités externes, vous pourrez toujours voir les
journaux en cliquant sur view-> logs si vous enregistrez quelque chose après l'exécution du code.
Bonjour le monde
function helloWorld()
{
Browser.msgBox("Hello World");
}
Pour exécuter le script, cliquez sur ▶ ou sélectionnez l’élément de menu Exécuter -> helloWorld
Google Apps Script est une plate-forme basée sur JavaScript, principalement utilisée pour
automatiser et étendre Google Apps. Apps Script s'exécute exclusivement sur l'infrastructure de
Google ne nécessitant aucun provisionnement ni configuration du serveur. Un IDE en ligne sert
d'interface à l'ensemble de la plate-forme connectant tous les services disponibles à Apps Script.
L'authentification de l'utilisateur est intégrée à la plate-forme via OAuth2 et ne nécessite aucun
code ou configuration par l'auteur du script.
Apps Script s'exécute côté serveur, mais peut avoir des interfaces utilisateur créées avec HTML,
https://riptutorial.com/fr/home 4
CSS, JavaScript ou toute autre technologie prise en charge par le navigateur. Contrairement aux
Nodejs, qui sont pilotés par des événements, les scripts d'application s'exécutent dans un modèle
threadé. Tous les appels à un script génèrent une instance unique de ce script qui s'exécute
indépendamment de toutes les autres instances. Lorsqu'une instance d'un script termine son
exécution, elle est détruite.
Les fonctions du script Apps bloquent les fonctions de callback et de programmation asynchrone.
Le verrouillage est utilisé pour empêcher l'exécution simultanée de sections de code critiques,
telles que le fichier IO, par différentes instances.
En pratique, l'écriture d'applications est simple. Vous trouverez ci-dessous un script simple qui
crée une nouvelle feuille de calcul à partir d'une feuille de calcul de modèle.
https://riptutorial.com/fr/home 5
Chapitre 2: Appels clients à Google apps-
script
Introduction
Google appscript fonctionne bien en tant que plate-forme autonome et au format addon pour les
documents, feuilles et formulaires Google. Cependant, il peut arriver qu'un navigateur client doive
appeler une application Google pour effectuer certaines actions.
Par conséquent, Google a introduit des demandes côté client dans des scripts d’applications
Google. Pour résoudre ce problème, Google a introduit les bibliothèques côté client
Examples
Voici un exemple d'appel côté client vers un script d'application Google
<script src="https://apis.google.com/js/api.js"></script>
<script>
function start() {
// 2. Initialize the JavaScript client library.
gapi.client.init({
'apiKey': 'YOUR_API_KEY',
// clientId and scope are optional if auth is not required.
'clientId': 'YOUR_WEB_CLIENT_ID.apps.googleusercontent.com',
'scope': 'profile',
}).then(function() {
// 3. Initialize and make the API request.
return gapi.client.request({
'path': 'https://people.googleapis.com/v1/people/me',
})
}).then(function(response) {
console.log(response.result);
}, function(reason) {
console.log('Error: ' + reason.result.error.message);
});
};
// 1. Load the JavaScript client library.
gapi.load('client', start);
</script>
https://riptutorial.com/fr/home 6
Chapitre 3: Apps Script Web Apps
Remarques
Ceci est un exemple d'application Web de formulaire, le bit côté client montre une conception UX
de base, telle qu'un bouton d'envoi désactivé lorsque le formulaire est soumis, ou un message
d'erreur s'il échoue ... etc
Le bit Apps Script est très simple. Il ne contient que le code nécessaire pour servir le code HTML
et pour valider le champ.
Voici un lien vers cet exemple d'application en action: Exemple de formulaire de script
d'applications
• Code.gs
• index.html
• Stylesheet.html
• JavaScript.html
Examples
Formulaire d'application Web
Script d'applications:
//Called from the client with form data, basic validation for blank values
function formSubmit(formData){
for(var field in formData){
if(formData[field] == ''){
return {success: false, message: field + ' Cannot be blank'}
}
}
return {success: true, message: 'Sucessfully submitted!'};
}
HTML
https://riptutorial.com/fr/home 7
<!DOCTYPE html>
<html>
<head>
<base target="_top">
<link href="https://ssl.gstatic.com/docs/script/css/add-ons1.css" rel="stylesheet">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"
type="text/javascript"></script>
</head>
<body>
<div id="mainForm">
<h1>Example Form</h1>
<form>
<div>
<div class="inline form-group">
<label for="name">Name</label>
<input id="nameInput" style="width: 150px;" type="text">
</div>
</div>
<div>
<div class="inline form-group">
<label for="city">City</label>
<input id="cityInput" style="width: 150px;" type="text">
</div>
<div class="inline form-group">
<label for="state">State</label>
<input id="stateInput" style="width: 40px;" type="text">
</div>
<div class="inline form-group">
<label for="zip-code">Zip code</label>
<input id="zip-codeInput" style="width: 65px;" type="number">
</div>
</div>
<div class="block form-group">
<label for="typeSelect">Type</label>
<select id="typeSelect">
<option value="">
</option>
<option value="Type 1 ">
Type 1
</option>
<option value="Type 2 ">
Type 2
</option>
<option value="Type 3 ">
Type 3
</option>
<option value="Type 4 ">
Type 4
</option>
</select>
</div>
<button class="action" id="submitButton" type="button">Submit</button>
<button class="clear" id="clearFormButton" type="button">Clear Form</button>
</form>
<div class="hidden error message">
<div class="title">Error:</div>
<div class="message"></div>
</div>
<div class="hidden success message">
https://riptutorial.com/fr/home 8
<div class="title">Message:</div>
<div class="message">Sucessfully submitted</div>
</div>
</div>
<?!= HtmlService.createHtmlOutputFromFile('JavaScript').getContent(); ?>
<?!= HtmlService.createHtmlOutputFromFile('Stylesheet').getContent(); ?>
</body>
</html>
CSS
<style>
.hidden {
display: none;
}
.form-group {
margin: 2px 0px;
}
#submitButton {
margin: 4px 0px;
}
body {
margin-left: 50px;
}
.message {
padding: 2px;
width: 50%;
}
.message > * {
display: inline-block;
}
.message .title {
font-weight: 700;
font-size: 1.1em;
}
.success.message {
border: 1px solid #5c9a18;
background: #e4ffe4;
color: #2a8e2a;
}
.error.message {
background: #f9cece;
border: 1px solid #7d2929;
}
.error.message .title {
color: #863030;
}
button.clear {
background: -moz-linear-gradient(top, #dd6e39, #d17636);
https://riptutorial.com/fr/home 9
background: -ms-linear-gradient(top, #dd6e39, #d17636);
background: -o-linear-gradient(top, #dd6e39, #d17636);
background: -webkit-linear-gradient(top, #dd6e39, #d17636);
background: linear-gradient(top, #dd6e39, #d17636);
border: 1px solid transparent;
color: #fff;
text-shadow: 0 1px rgba(0, 0, 0, .1);
}
button.clear:hover {
background: -moz-linear-gradient(top, #ca602e, #bd6527);
background: -ms-linear-gradient(top, #ca602e, #bd6527);
background: -o-linear-gradient(top, #ca602e, #bd6527);
background: -webkit-linear-gradient(top, #ca602e, #bd6527);
background: linear-gradient(top, #ca602e, #bd6527);
border: 1px solid transparent;
color: #fff;
text-shadow: 0 1px rgba(0, 0, 0, .1);
}
</style>
JavaScript
<script>
var inputs = [
'nameInput',
'cityInput',
'stateInput',
'zip-codeInput',
'typeSelect'
];
$(function(){
var pageApp = new formApp();
$('#submitButton').on('click', pageApp.submitForm);
$('#clearFormButton').on('click', pageApp.clearForm);
});
google.script.run
.withSuccessHandler(self.sucessfullySubmitted)
.withFailureHandler(self.failedToSubmit)
https://riptutorial.com/fr/home 10
.formSubmit(self.getFormData());
};
//Sets the general message box's message and enables or disabled the error box
function setSuccessMessage(show, message){
if(show){
$('.success.message').removeClass('hidden');
$('.success.message .message').text(message);
} else {
$('.success.message').addClass('hidden');
$('.success.message .message').text('');
}
}
//Sets the error message box's message and enables or disabled the error box
function setErrorMessage(show, message){
if(show){
$('.error.message').removeClass('hidden');
$('.error.message .message').text(message);
} else {
$('.error.message').addClass('hidden');
$('.error.message .message').text('');
}
}
function getFormData(){
var output = {};
for(var i = 0; i < inputs.length; i++){
output[inputs[i]] = $('#'+inputs[i]).val();
https://riptutorial.com/fr/home 11
}
return output;
}
</script>
https://riptutorial.com/fr/home 12
Chapitre 4: Créer une fonction personnalisée
pour Google Sheets
Introduction
Une fonction personnalisée dans Google Documents est liée à un document spécifique (et ne peut
donc être utilisé que dans ce document).
Il doit donc être créé avec l'édition du script de ce document (Tools -> Script Editor). Une fois
sauvegardé, il peut ensuite être utilisé comme toute autre formule de tableur classique.
Examples
Constante standard de gravité
Cette fonction renvoie la constante de gravité standard dans les unités d'accélération spécifiées (1
pour cm / s², 2 pour ft / s², 3 pour m / s²)
/**
* Returns the standard gravity constant in the specified acceleration units
* Values taken from https://en.wikipedia.org/wiki/Standard_gravity on July 24, 2016.
*
* @param {number} input 1 for cm/s², 2 for ft/s², 3 for m/s²
*
* @customfunction
*/
function sg(units_key) {
var value;
switch(units_key) {
case 1:
value = 980.665;
break;
case 2:
value = 32.1740;
break;
case 3:
value = 9.80665;
break;
default:
throw new Error('Must to specify 1, 2 or 3');
}
return value;
}
Pour utiliser la fonction, il doit être lié à une feuille de calcul en utilisant l'éditeur de script (Outils ->
Editeur de script ...). Une fois la fonction ajoutée, elle peut être utilisée comme n’importe quelle
autre fonction Google en appelant la fonction dans la formule d’une cellule.
Notez comment la fonction apparaît en saisie semi-automatique lors de la saisie dans une
formule. Cela est dû au commentaire multi-ligne au-dessus de la déclaration de fonction qui est
https://riptutorial.com/fr/home 13
utilisé pour décrire ce que la fonction fait comme JSDoc et Javadoc. Pour que la formule s'affiche
en autocomplétion, la balise @customfunction doit être spécifiée dans le commentaire.
Exemple de base
Pour éviter les erreurs inesthétiques #DIV/0 dans une feuille de calcul, une fonction personnalisée
peut être utilisée.
/**
* Divides n by d unless d is zero, in which case, it returns
* the given symbol.
*
* @param {n} number The numerator
* @param {d} number The divisor
* @param {symbol} string The symbol to display if `d == 0`
* @return {number or string} The result of division or the given symbol
*
* @customfunction
*/
function zeroSafeDivide(n, d, symbol) {
if (d == 0)
return symbol;
else
return n / d;
}
Pour utiliser la fonction, il doit être lié à une feuille de calcul en utilisant l'éditeur de script ( Outils -
> Editeur de script ... ). Une fois la fonction ajoutée, elle peut être utilisée comme n’importe
quelle autre fonction Google en appelant la fonction dans la formule d’une cellule.
Notez comment la fonction apparaît en saisie semi-automatique lors de la saisie dans une
formule. Cela est dû au commentaire multi-ligne au-dessus de la déclaration de fonction qui est
utilisé pour décrire ce que la fonction fait comme JSDoc et Javadoc. Pour que la formule s'affiche
en autocomplétion, la balise @customfunction doit être spécifiée dans le commentaire.
https://riptutorial.com/fr/home 14
Chapitre 5: DriveApp
Examples
Créer un nouveau dossier dans une racine Google Drive
function createNewFolderInGoogleDrive(folderName) {
return DriveApp.createFolder(folderName);
}
Utilisez la fonction createNewFolderInGoogleDrive pour créer un dossier nommé Test folder dans
une racine Google Drive:
Créer un nouveau fichier dans Google Drive d'un certain type Mime
function createGoogleDriveFileOfMimeType() {
var content,fileName,newFile;//Declare variable names
fileName = "Test File " + new Date().toString().slice(0,15);//Create a new file name with
date on end
content = "This is the file Content";
function createGoogleDriveTextFile() {
var content,fileName,newFile;//Declare variable names
fileName = "Test Doc " + new Date().toString().slice(0,15);//Create a new file name with
date on end
content = "This is the file Content";
function createGoogleDriveFileWithBlob() {
https://riptutorial.com/fr/home 15
var blob,character,data,fileName,i,L,max,min,newFile,randomNmbr;//Declare variable names
fileName = "Test Blob " + new Date().toString().slice(0,15);//Create a new file name with
date on end
Récupère tous les dossiers - place les dossiers dans un jeton de continuation
- puis récupère les jetons
function processGoogleDriveFolders() {
var arrayAllFolderNames,continuationToken,folders,foldersFromToken,thisFolder;//Declare
variable names
https://riptutorial.com/fr/home 16
function processGoogleDriveFiles() {
var arrayAllFileNames,continuationToken,files,filesFromToken,fileIterator,thisFile;//Declare
variable names
Logger.log(arrayAllFileNames);
};
if (!child) {
body = "There is no folder";
MailApp.sendEmail(Session.getEffectiveUser().getEmail(), "", "Error Adding Folder!", body)
return;
};
function createNewFolderInGoogleDrive() {
var folder,newFolderName,timeStamp,dateTimeAsString;
newFolderName = 'Test Folder Name ' + dateTimeAsString;//Create new folder name with
date/time appended to name
https://riptutorial.com/fr/home 17
var body,returnedFolder;//Declare variable names
if (!child) {
body = "There is no file";
MailApp.sendEmail(Session.getEffectiveUser().getEmail(), "", "Error Adding File!", body)
return;
};
returnedFolder = DriveApp.addFile(child);
function createNewFileInGoogleDrive() {
var content,file,newFileName,timeStamp,dateTimeAsString;
content = "This is test file content, created at: " + dateTimeAsString;//Create content for
new file
newFileName = 'Test File ' + dateTimeAsString;//Create new file name with date/time appended
to name
function onOpen() {
function getFiles() {
// Look in the same folder the sheet exists in. For example, if this template is in
// My Drive, it will return all of the files in My Drive.
var ssparents = DriveApp.getFileById(ssid).getParents();
var sheet = ss.getActiveSheet();
// Loop through all the files and add the values to the spreadsheet.
var folder = ssparents.next();
var files = folder.getFiles();
var i=1;
https://riptutorial.com/fr/home 18
while(files.hasNext()) {
var file = files.next();
if(ss.getId() == file.getId()){
continue;
}
sheet.getRange(i+1, 1, 1,
4).setValues([[file.getLastUpdated(),file.getOwner().getName(),file.getName(),
file.getUrl()]]);
i++;
}
}
https://riptutorial.com/fr/home 19
Chapitre 6: DriveApp - getFileById (id)
Remarques
Il est également possible d'obtenir un fichier par l'URL du fichier. L'ID d'un fichier se trouve dans
l'URL. L'utilisation de l'ID au lieu de l'URL complète signifie que le paramètre est plus court.
Stocker l'URL plutôt que l'ID prend plus de place.
Examples
Obtenir un fichier à partir de Google Drive à l'aide de l'ID de fichier
function getGoogleDriveFileById(id) {
var file;
https://riptutorial.com/fr/home 20
Chapitre 7: DriveApp Service - Fichiers par
type et chaîne de recherche
Paramètres
Examples
Récupère les fichiers par type de fichier avec la chaîne correspondante dans
le nom du fichier
Obtenez tous les formulaires Google avec le mot "Sans titre" dans le nom du fichier.
function mainSearchFunction(searchStr) {
var fileInfo,arrayFileIDs,arrayFileNames,arrayOfIndexNumbers,
allFileIDsWithStringInName,i,searchStr,thisID;//Declare variables
if (!searchStr) {
searchStr = "Untitled";//Assign a string value to the variable
};
allFileIDsWithStringInName = [];
arrayFileIDs = fileInfo[0];
for (i=0;i<arrayOfIndexNumbers.length;i+=1) {
thisID = arrayFileIDs[arrayOfIndexNumbers[i]];
allFileIDsWithStringInName.push(thisID);
};
Logger.log(allFileIDsWithStringInName)
};
function getFilesOfType() {
var allFormFiles,arrFileName,arrFileID,arrFileUrls,thisFile;
allFormFiles = DriveApp.getFilesByType(MimeType.GOOGLE_FORMS);
arrFileName = [];
arrFileID = [];
arrFileUrls = [];
while (allFormFiles.hasNext()) {
https://riptutorial.com/fr/home 21
thisFile=allFormFiles.next();
arrFileName.push(thisFile.getName());
arrFileID.push(thisFile.getId());
arrFileUrls.push(thisFile.getUrl());
};
//Logger.log(arrFileName)
return [arrFileID,arrFileName];
};
function searchFileNamesForString(arrayFileNames,searchStr) {
var arrayIndexNumbers,i,L,thisName;
arrayIndexNumbers = [];
L = arrayFileNames.length;
for (i=0;i<L;i+=1){
thisName = arrayFileNames[i];
Logger.log(thisName);
Logger.log('thisName.indexOf(searchStr): ' + thisName.indexOf(searchStr));
return arrayIndexNumbers;
};
https://riptutorial.com/fr/home 22
Chapitre 8: Feuille active SpreadsheetApp
Remarques
Méthode: getActive ()
Examples
getActive () - Récupère une feuille de calcul active
https://riptutorial.com/fr/home 23
Chapitre 9: Feuille de calcul Ajouter un menu
Syntaxe
1. addMenu (nom, sous-menu)
Paramètres
prénom La description
Remarques
En règle générale, vous souhaiterez appeler addMenu à partir de la fonction onOpen afin que le
menu soit automatiquement créé lors du chargement de la feuille de calcul.
activeSheet.addMenu("addMenuExample", menuEntries);
}
Examples
Créer un nouveau menu
Crée un nouveau menu dans l'interface utilisateur de la feuille de calcul. Chaque entrée de menu
exécute une fonction définie par l'utilisateur.
https://riptutorial.com/fr/home 24
activeSheet.addMenu("addMenuExample", menuEntries);
/*
Méthode: Créer un menu personnalisé C'est la première fonction à appeler lorsque l'application
charge
*/
function onOpen() {
var ui = SpreadsheetApp.getUi();
// Or DocumentApp or FormApp.
ui.createMenu('My HR')
.addItem('Send Form to All', 'sendIDPForm_All')
.addItem('Trigger IDP System', 'applyCategory')
.addToUi();
}
https://riptutorial.com/fr/home 25
Chapitre 10: Firebase et AppScript:
Introduction
Introduction
Intégrez Firebase avec Google AppScript pour lire et écrire des données dans la base de données
Firebase.
Firebase est un système de base de données NoSQL de Google qui utilise une base de données
en temps réel pour créer et héberger des applications sur des appareils mobiles, de bureau et de
tablette. Les bases de données NoSQL utilisent les objets JSON pour stocker les données au
format structuré.
Examples
Connexion à un projet Firebase dans GAS et transfert de données de Google
Spreadsheet vers Firebase
• Cliquez sur Bibliothèques La fenêtre suivante apparaît. Entrez la clé de projet suivante dans
la zone de texte. MYeP8ZEEt1ylVDxS7uyg9plDOcoke7-2l Ceci est la clé de bibliothèque
de projet pour Firebase.
https://riptutorial.com/fr/home 26
• Maintenant, dans la version, choisissez la version publique stable.
https://riptutorial.com/fr/home 27
• Cliquez sur Enregistrer. Maintenant, Firebase est installé avec succès dans votre AppScript
pour que vous puissiez travailler.
https://riptutorial.com/fr/home 28
• Maintenant, construisez la base de données dans Firebase en utilisant cette table dans les
feuilles. Ajoutez le code suivant dans AppScript.
function writeDataToFirebase() {
var ss = SpreadsheetApp.openById("1LACsj0s3syAa9gvORdRWBhJ_YcXHybjQfHPgw3TLQ6g");
var sheet = ss.getSheets()[0];
var data = sheet.getDataRange().getValues();
var dataToImport = {};
for(var i = 1; i < data.length; i++) {
var firstName = data[i][0];
var lastName = data[i][1];
dataToImport[firstName + '-' + lastName] = {
firstName:firstName,
lastName:lastName,
emailAddress:data[i][2],
semester:data[i][4],
department:data[i][5],
};
}
var firebaseUrl = "https://example-app.firebaseio.com/";
var secret = "secret-key";
var base = FirebaseApp.getDatabaseByUrl(firebaseUrl, secret);
base.setData("", dataToImport);
}
https://riptutorial.com/fr/home 29
• Accédez à la section Comptes de service, vous pouvez trouver l'URL de base de données.
Cela sert de firebaseURL.
• Cliquez maintenant sur l'onglet Secrets de base de données et vous pouvez trouver la clé
secrète.
Pour voir la base de données, accédez au tableau de bord Firebase et cliquez sur la base
de données pour afficher la base de données.
function myFunction(){
var firebaseUrl = "https://example-app.firebaseio.com/";
var secret = "secret-key";
var base = FirebaseApp.getDatabaseByUrl(firebaseUrl, secret);
base.setData("test", "Hello Firebase");
}
function getAllData() {
var firebaseUrl = "https://example-app.firebaseio.com/";
var secret = "secret-key";
var base = FirebaseApp.getDatabaseByUrl(firebaseUrl, secret);
var data = base.getData();
for(var i in data) {
Logger.log(data[i].firstName + ' ' + data[i].lastName);
}
}
Les données lues sont affichées dans les journaux. Pour vérifier les journaux, cliquez sur
Cliquez sur Afficher → Journaux ou utilisez simplement Contrôle + Entrée.
https://riptutorial.com/fr/home 30
function getContact() {
var firebaseUrl = "https://example-app.firebaseio.com/";
var secret = "secret-key";
var base = FirebaseApp.getDatabaseByUrl(firebaseUrl, secret);
var contact = base.getData("Yash-Udasi");
Logger.log(contact);
}
Les données lues sont affichées dans les journaux. Pour vérifier les journaux, cliquez sur
Cliquez sur Afficher → Journaux ou utilisez simplement Contrôle + Entrée.
function updateData() {
var firebaseUrl = "https://example-app.firebaseio.com/";
var secret = "secret-key";
var base = FirebaseApp.getDatabaseByUrl(firebaseUrl, secret);
base.updateData("Yash-Udasi/emailAddress", "[email protected]");
}
https://riptutorial.com/fr/home 31
Chapitre 11: GmailApp
Remarques
Voir aussi la référence API officielle pour GmailApp pour plus de détails sur les méthodes
disponibles.
Examples
Obtenir le fichier CSV attaché à un mail
Supposons que nous ayons un système qui envoie des rapports quotidiens par courrier
électronique sous la forme de fichiers CSV joints et que nous souhaitons y accéder.
function getCsvFromGmail() {
// Get the newest Gmail thread based on sender and subject
var gmailThread = GmailApp.search("from:[email protected] subject:\"My daily report\"", 0,
1)[0];
// Get and and parse the CSV from the first attachment
var csv = Utilities.parseCsv(attachments[0].getDataAsString());
return csv;
}
https://riptutorial.com/fr/home 32
Chapitre 12: Google feuilles MailApp
Introduction
Ce service permet aux utilisateurs d'envoyer des e-mails avec un contrôle total sur le contenu de
l'e-mail. Contrairement à GmailApp, le seul but de MailApp est d'envoyer des courriers
électroniques. MailApp ne peut pas accéder à la boîte de réception Gmail d'un utilisateur.
Les modifications apportées aux scripts écrits à l'aide de GmailApp sont plus susceptibles de
déclencher une demande de réautorisation d'un utilisateur que les scripts MailApp.
Examples
Un exemple de MailApp de base
MailApp est l'api de Google App Script qui peut être utilisé pour envoyer du courrier
function sendEmails() {
La classe MailApp est limitée aux quotas basés sur votre compte Google:
function checkQuota() {
Logger.log(MailApp.getRemainingDailyQuota());
}
function getSheetData() {
https://riptutorial.com/fr/home 33
var dataRange = sheet.getRange(startRow, startCol, numRows, numCols);
return data;
}
Vous pouvez également modifier la fonction ci-dessus pour obtenir une dynamique de plage de
données à partir du contenu présent dans la feuille:
function getDataSheet() {
sheet = SpreadsheetApp.getActiveSheet();
return data;
}
Compte tenu - Une feuille de renseignements sur les employés qui ont demandé un
remboursement.
Besoin - Nous devrions envoyer un courriel à l'employé lorsque son remboursement est traité
function getDataSheet() {
sheet = SpreadsheetApp.getActiveSheet();
https://riptutorial.com/fr/home 34
startRow = 2; // First row of data to process
numRows = 100; // Number of rows to process
startCol = 1; //First column of data to process
numCols = 15; // Number of columns to process
return data;
}
function sendEmail() {
//Sheet range starts from index 1 and data range starts from index 0
sheet.getRange(1 + i, emailCol).setValue(emailSent);
}
}
}
https://riptutorial.com/fr/home 35
Envoi de contenu HTML par courrier
Dans l'exemple ci-dessus, si nous voulons envoyer du contenu HTML en tant que message dans
l'e-mail, créez un fichier HTML en allant dans Fichier -> Nouveau -> Fichier HTML
Maintenant, vous pouvez voir un fichier HTML en plus de votre fichier gs comme suit:
https://riptutorial.com/fr/home 36
Maintenant, mettez à jour la méthode getMessage () de l'exemple ci-dessus comme suit:
return message;
}
https://riptutorial.com/fr/home 37
function getDataSheet() {
sheet = SpreadsheetApp.getActiveSheet();
return data;
}
return message;
}
function sendEmail() {
sheet.getRange(startRow + i, emailCol).setValue(emailSent);
}
}
}
https://riptutorial.com/fr/home 38
Chapitre 13: Script Google App Web à
télécharger automatiquement à partir de
Google Drive
Introduction
Ce script Web simple de Google App permet à Google Drive d'être interrogé à plusieurs reprises
pour que les fichiers soient téléchargés sur le PC local de l'utilisateur. Montre comment utiliser un
script d'application pour fournir les fonctions suivantes: 1. Interface utilisateur (simple dans cet
exemple) 2. La page de téléchargement de fichier. Pour une explication plus complète de son
fonctionnement, lisez l'exemple "Comment ça marche".
Remarques
Le script Web doit être publié pour pouvoir fonctionner.
Examples
forms.html
<!DOCTYPE html>
<html>
<head>
<base target="_top">
<script>
setInterval(
function ()
{
document.getElementById('messages').innerHTML = 'Event Timer Fetching';
google.script.run
.withSuccessHandler(onSuccess)
.withFailureHandler(onFailure)
.fetchFromGoogleDrive();
}, 60000);
function callFetchGoogleDrive() {
document.getElementById('messages').innerHTML = 'Fetching';
google.script.run
.withSuccessHandler(onSuccess)
.withFailureHandler(onFailure)
.fetchFromGoogleDrive();
}
function onSuccess(sHref)
{
https://riptutorial.com/fr/home 39
if(new String(sHref).valueOf() == new String("").valueOf())
{
document.getElementById('messages').innerHTML = 'Nothing to download';
}
else
{
document.getElementById('messages').innerHTML = 'Success';
document.getElementById('HiddenClick').href = sHref;
document.getElementById('HiddenClick').click(); // Must enable Pop Ups for
https://script.google.com
}
}
function onFailure(error)
{
document.getElementById('messages').innerHTML = error.message;
}
</script>
</head>
<body>
<div id="messages">Waiting to DownLoad!</div>
<div>
<a id="HiddenClick" href="" target="_blank" onclick="google.script.host.close"
style="visibility: hidden;">Hidden Click</a>
</div>
<div>
<button type="button" onclick='callFetchGoogleDrive();' id="Fetch">Fetch Now!</button>
</div>
</body>
</html>
code.gs
function doGet(e){
var serveFile = e.parameter.servefile;
var id = e.parameter.id;
if(serveFile)
{
return downloadFile(id); // and Hyde
}
if (fileslist.hasNext()) {
var afile = fileslist.next();
var html = ScriptApp.getService().getUrl()+"?servefile=true&id="+afile.getId();
return html;
}
else
{
return '';
}
https://riptutorial.com/fr/home 40
}
Comment ça marche
Application Web de Google Drive (autonome) pour télécharger automatiquement (interroger) les
fichiers du lecteur vers le PC local de l'utilisateur (dossier Télécharger).
DriveApp fournit des mécanismes pour rechercher et télécharger des fichiers. Cependant, le
mécanisme de téléchargement présente de sérieuses limitations en raison de l'architecture client /
serveur héritée par Google Apps. (Pas de faute de Google)
DriveApp côté serveur ne fournit pas de fonction directe à télécharger sur le PC local car le
serveur n’a aucune idée de l’endroit où se trouve le client et le téléchargement du fichier sur le
serveur lui-même n’aurait aucune signification.
Le code côté serveur a besoin d'un mécanisme pour fournir au code côté client les données du
fichier ou un lien vers le fichier. Ces deux mécanismes sont fournis mais les données du premier
sont limitées à être utilisées directement par le code côté client. Le client n'a aucun mécanisme
pour enregistrer les données, une fois obtenues, sur le PC local. Ainsi, il peut être utilisé pour
afficher les données sur la page Web elle-même.
Le second mécanisme permet de renvoyer l'URL du script (lui-même) ou l'URL du fichier Drive.
L'URL du fichier Drive n'est pas très utile car elle ne peut pas être utilisée directement dans le
navigateur client pour télécharger le fichier. Placer cette URL dans l'ancre (et en cliquant dessus)
ne donne lieu qu'à une page Web qui s'ouvre mais qui ne fait rien (sauf éventuellement afficher le
fichier en ligne).
Cela laisse l'URL du script. Cependant, l'URL du script ne fournit que le script et non le fichier.
Pour lancer un téléchargement, le fichier du service Drive doit être renvoyé par la fonction doGet /
doPost du script côté serveur à l'aide de ContentService createTextOutput, exactement comme
indiqué dans les guides en ligne de Google. Cependant, cela implique qu'il ne peut y avoir aucun
https://riptutorial.com/fr/home 41
autre élément d'interface utilisateur sur la page Web généré par les résultats renvoyés par doGet /
doPost.
Cela nous laisse une solution très peu attrayante. Une page Web vierge sans éléments d'interface
utilisateur qui télécharge une page, se ferme et nécessite une ouverture manuelle lorsqu'un autre
téléchargement est requis.
De toute évidence, une autre page Web d'hébergement pourrait fournir l'interface utilisateur et le
lien vers le script de téléchargement de l'application Web pour résoudre ce problème.
Si le script est ouvert sans paramètres à GET (doGet), il affiche par défaut un formulaire. Ce sera
la condition lorsque l'application publiée est ouverte pour la première fois par un utilisateur. Le
formulaire fourni dans cet exemple est extrêmement simple.
Si le script est ouvert avec le paramètre servefile = true, le script se comporte comme un
téléchargement de fichier Drive.
Lorsque le script côté serveur est exécuté s'il détecte un fichier de lecteur correspondant aux
critères de recherche *, il renvoie l'URL du script lui-même ajouté aux paramètres:
(* Le critère de recherche dans cet exemple simple est codé en dur dans le script côté serveur. Il
peut facilement être transmis du client au serveur si nécessaire.)
Ces informations sont renvoyées sous forme de chaîne au client via le mécanisme reconnu avec
SuccèsHandler.
Le script Java client met alors à jour le HREF d'une ancre masquée avec ces informations
renvoyées, puis clique automatiquement sur l'ancre.
Cela provoque un autre appel de l'application / script à lancer. Lorsque la nouvelle invocation de
l'application lance le doGet, il détecte le paramètre servefile et au lieu de renvoyer l'interface
utilisateur, il renvoie le fichier au navigateur. Le fichier renvoyé sera celui identifié par le paramètre
ID fourni, précédemment renvoyé par la recherche décrite ci-dessus.
Étant donné que le fichier avec l'ID fourni existe toujours, il sera téléchargé et le nouvel appel de
l'application se fermera, laissant la première invocation pour répéter ce processus.
Un bouton est fourni sur l’interface simple si l’utilisateur / le testeur est impatient d’attendre le
temporisateur, mais ce n’est pas obligatoire et peut être supprimé.
Le formulaire simple peut bien sûr être étendu pour fournir une interface utilisateur plus riche si
nécessaire. Comme fournir les critères de recherche de fichier.
https://riptutorial.com/fr/home 42
Lire Script Google App Web à télécharger automatiquement à partir de Google Drive en ligne:
https://riptutorial.com/fr/google-apps-script/topic/8212/script-google-app-web-a-telecharger-
automatiquement-a-partir-de-google-drive
https://riptutorial.com/fr/home 43
Chapitre 14: Service de tableur
Remarques
La référence API officielle pour le service Spreadsheet est disponible à l' adresse
https://developers.google.com/apps-script/reference/spreadsheet/ .
Examples
Drap
Valeur de cellule
https://riptutorial.com/fr/home 44
cell.setValue(100);
Formule
Imaginez que nous ayons une feuille de calcul Google distincte, et que nous avons besoin de la
valeur de cellule B2 dans la cellule D5 de votre feuille actuelle.
function copyValueandPaste()
{
var source = SpreadsheetApp.openById('spread sheet id is here'); //Separate spreadsheet
book
var sourcesheet = source.getSheetByName('Sheet1'); //Sheet tab with source data
var sourceCellValue = sourcesheet.getRange('B2').getValue(); // get B2 cell value
https://riptutorial.com/fr/home 45
Insertion de tableaux en tant que lignes
Notez que cela va ajouter la ligne après la dernière ligne non vide .
Insérer une ligne quelque part au milieu est un peu plus compliqué:
var newRowIndex = 2;
var row = ["Gandalf", "?", "Wizard", "?", 2019];
someSheet.insertRowBefore(newRowIndex);
// getRange(row, col, numRows, numCols)
someSheet.getRange(newRowIndex, 1, 1, row.length).setValues([row]); // Note 2D array!
Une grande partie de ce code inutile peut être extrait dans une fonction d'assistance:
https://riptutorial.com/fr/home 46
Chapitre 15: Service DriveApp
Remarques
Les types Google Mime ne peuvent pas être utilisés pour le troisième paramètre de types Mime.
L'utilisation d'un type MIME Google entraînera une erreur indiquant:
Impossible d'utiliser "DriveApp.createFile ()" pour créer des types Google MIME. Veuillez utiliser
Advanced Drive Service
MimeType.GOOGLE_APPS_SCRIPT
MimeType.GOOGLE_DOCS
MimeType.GOOGLE_DRAWINGS
MimeType.GOOGLE_FORMS
MimeType.GOOGLE_SHEETS
MimeType.GOOGLE_SLIDES
Examples
Créer un nouveau dossier dans le lecteur racine Google
function createNewFolderInGoogleDrive() {
var folderName,newFolder;//Declare variable names
Créer un nouveau fichier dans Google Drive d'un certain type Mime
function createGoogleDriveFileOfMimeType() {
var content,fileName,newFile;//Declare variable names
fileName = "Test File " + new Date().toString().slice(0,15);//Create a new file name with
date on end
content = "This is the file Content";
https://riptutorial.com/fr/home 47
function createGoogleDriveTextFile() {
var content,fileName,newFile;//Declare variable names
fileName = "Test Doc " + new Date().toString().slice(0,15);//Create a new file name with
date on end
content = "This is the file Content";
function createGoogleDriveFileWithBlob() {
var blob,character,data,fileName,i,L,max,min,newFile,randomNmbr;//Declare variable names
fileName = "Test Blob " + new Date().toString().slice(0,15);//Create a new file name with
date on end
Récupère tous les dossiers - place les dossiers dans un jeton de continuation
- puis récupère les jetons
function processGoogleDriveFolders() {
var arrayAllFolderNames,continuationToken,folders,foldersFromToken,thisFolder;//Declare
variable names
https://riptutorial.com/fr/home 48
the continuation token is working
function processGoogleDriveFiles() {
var arrayAllFileNames,continuationToken,files,filesFromToken,fileIterator,thisFile;//Declare
variable names
Logger.log(arrayAllFileNames);
};
https://riptutorial.com/fr/home 49
Crédits
S.
Chapitres Contributeurs
No
Appels clients à
2 Supertopoz
Google apps-script
DriveApp -
6 Sandy Good
getFileById (id)
DriveApp Service -
7 Fichiers par type et nibarius, Sandy Good
chaîne de recherche
Feuille active
8 iJay
SpreadsheetApp
Feuille de calcul
9 Bishal, iJay, nibarius
Ajouter un menu
Firebase et
10 AppScript: Joseba, Vishal Vishwakarma
Introduction
11 GmailApp nibarius
Google feuilles Bhupendra Piprava, Brian, Jordan Rhea, Kos, nibarius, Saloni
12
MailApp Vithalani
https://riptutorial.com/fr/home 50
Drive
https://riptutorial.com/fr/home 51