Aujourd’hui nous allons voir comment générer des QR Codes automatiquement sur Google Sheets.
Puis une fois ces QR Codes générés, nous allons les exporter dans le dossier Google Drive de votre choix.
Sommaire
ToggleQu’est-ce qu’un QR Code ?
Un QR Code (Quick Response Code) fonctionne sur le même principe qu’un code-barres que l’on retrouve dans une boutique ou un magasin.
À la différence qu’un QR Code est en 2 dimensions et donc permet de contenir plus d’informations. Toutefois cette quantité d’informations reste très faible et ne permet que de transmettre quelques mots ou une URL.
Les carrés noirs et blancs vont représenter une somme de chiffres, de lettres et de caractères qui pourront être lus et reconnus grâce à un lecteur de QR Code. Avec un carré noir valant 1 et un carré blanc 0.
Shématiquement, cette suite de 0 et de 1 va permettre de créer des valeurs comme par exemple « 01000001 = A » nous permettant ainsi d’accéder au contenu sur notre lecteur de QR Code comme nos smartphones.
Si vous souhaitez en savoir plus sur le fonctionnement des QR Code, je vous invite à consulter cette vidéo : Comment fonctionne un QR code ? ou bien cet article QR Codes.
Mais reprenons nos moutons et regardons ensemble comment créer des QR Code automatiquement avec Google Sheets.
1 – Sélectionner les URL à transformer en QR Code
Il existe de nombreux sites internet gratuits ou vous pouvez générer des QR Code facilement. Très pratique pour en créer un ou deux rapidement. Toutefois cela devient plus fastidieux dès lors que l’on souhaite en créer des dizaines, des centaines ou des milliers.
Cette technique va vous permettre de créer automatiquement et facilement vos QR Code sur Google Sheets.
La première étape va être de lister l’ensemble des URL que vous souhaitez transformer en QR Code.
Pour cela rien de plus simple, il suffit d’ouvrir un fichier Google Sheets et de saisir sur chaque ligne l’URL que vous souhaitez transformer en QR code.
2 – Comment créer des QR Code sur Google Sheets ?
Pour générer des QR Code automatiquement à partir de liste d’URL, que nous venons de créer, nous allons utiliser des API directement sur Google Sheets.
Nous allons dans un premier temps faire un call API pour générer le QR Code puis l’afficher en tant qu’image dans une cellule.
Dans cet article, nous allons utiliser deux API :
Vous pouvez en utiliser qu’une seule les deux fonctionnent très bien.
Et nous allons avoir besoin que de deux fonctions sur Google Sheets :
- IMAGE() pour insérer une image (QR Code) dans une cellule ;
- ENCODEURL() pour encoder le texte afin qu’il puisse être utilisé pour une URL
Pour simplifier la partie suivante sur comment exporter les QR Code créés sur Google Sheets, nous allons placer les QR Code dans la Colonne A du document, les URL dans la Colonne B.
Voici la formule que nous allons utiliser pour la version avec l’API de Google pour générer un QR Code dans la cellule.
=IMAGE("https://chart.googleapis.com/chart?chs=250x250&cht=qr&chl="&ENCODEURL(B2))
Pour expliquer un peu plus le lien du GoogleApis :
- cht=qr pour définir que l’on souhaite un QR Code
- chs pour définir la taille du QR ici 250 par 250 pour avoir un carré
- chl il s’agit de la donnée que l’on souhaite faire apparaître dans le QR Code. Dans notre exemple nous souhaitons faire apparaître l’URL de la colonne B. Donc nous utilisons alors &ENCODEURL(B2) pour ajouter la donnée dans notre call API.
Et comme vous le voyez, nous avons bien notre QR Code dans la cellule A2.
L’API de Google fonctionne très bien, toutefois elle ne permet pas de personnaliser le QR Code généré. Avec QR Code Generator vous pouvez par exemple changer la couleur de votre QR Code comme ceci :
Comme vous pouvez le voir, nous pouvons par exemple changer la couleur noire du QR code par une autre ici avec du bleu (color=007BFF) et également la couleur de fond (bgcolor=ffffff). Nous obtenons ainsi un fond blanc avec une couleur bleue.
Vous avez tous les paramètres possibles sur cette documentation : https://goqr.me/api/doc/create-qr-code/
Si vous avez testé, vous remarquerez que l’on ne peut pas sauvegarder les images générées dans la cellule. Vous pouvez toujours prendre un screenshot pour récupérer le QR Code.
C’est pour cela que je vous propose de voir la troisième partie qui va vous permettre d’exporter l’ensemble des QR Code que vous avez générés directement dans un dossier Google Drive.
3 – Comment exporter les QR Code créés sur Google Sheets ?
Pour exporter les QR Code que nous venons de créer, nous allons utiliser un Apps Script que j’ai trouvé en ligne en consultant une vidéo Youtube (https://www.youtube.com/watch?v=hMNdZlCBaLs)
Voici le code :
function myFunction() {
// Sheet name is from your shared Spreadsheet
var sheetName = "Data";
// Folder ID of the folder where the image files will be created
var folderId = "1_N1NlmfKnP07s4bQE02CD9gCF-8OpG0P";
// Get the sheet by it's name
// <https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet-app>
var gss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = gss.getSheetByName(sheetName);
// Select the data from sheet
// <https://developers.google.com/apps-script/reference/spreadsheet/sheet#getrangerow,-column>
var values = sheet.getRange(2, 3, sheet.getLastRow() - 1, 3).getValues();
var length = values.length;
var reqs = values.map(function(e) {return {url: e[0]}});
// <https://developers.google.com/apps-script/reference/url-fetch/url-fetch-app>
var res = UrlFetchApp.fetchAll(reqs);
res.forEach(function(r, i) {
// Download the qr image as blob (binary large object)
// <https://developers.google.com/apps-script/reference/drive/file#getBlob()>
// <https://developers.google.com/apps-script/reference/drive/file#setnamename>
var blob = r.getBlob().setName(length == values.length ? "QR_Code_[ligne " + (i + 2) +"]" + ".jpg" : "QR_Code_[ligne " + (length + 1) + "]" + ".jpg");
// Save the image in the folder on google drive
// <https://developers.google.com/apps-script/reference/drive/drive-app>
DriveApp.getFolderById(folderId).createFile(blob);
});
}
Pour que ce code fonctionne, on va dans un premier temps ajouter une colonne C avec uniquement le lien API que nous avons utilisé pour la colonne A pour générer les QR Code.
Il y a ensuite quelques informations que vous devez modifier pour que le script puisse fonctionner pour vous.
Pour utiliser le code, il faut aller sur votre feuille Google Sheets puis aller dans Extensions > Apps Script
Dès lors que vous avez ajouté le code, il faut modifier des éléments pour qu’il puisse fonctionner sur votre propre feuille.
1 – sheetName
Il faut changer la ligne « sheetName » par le nom de votre feuille Google Sheets que vous avez créée (en bas à gauche de Google Sheets). Il faut mettre le même nom pour qu’il puisse comprendre que vous souhaitez accéder aux informations de cette feuille de votre fichier.
2 – ID du dossier Google Drive
Deuxièmement, il faut changer l’ID du dossier Google Drive que vous souhaitez utiliser pour stocker les fichiers images des QR Code.
Pour trouver l’ID d’un dossier Google Drive, il suffit de consulter l’URL quand vous êtes à l’intérieur du dossier Google Drive.
3 – Les lignes et colonnes
Si vous avez respecté les mêmes lignes et colonnes que moi pour la création de votre fichier Google Sheets, vous n’avez rien à modifier.
Sinon, il vous faudra modifier les valeurs de la partie « Select the data from sheet »
4 – Les noms des fichiers exportés
Pour automatiser et classer mes QR Code, j’ai fait le choix de nommé les fichiers exportés comme cela : QR_Code_[ligne X].jpg
Vous pouvez changer les paramètres du nom et de l’extension dans la partie juste avant « // Save the image in the folder on google drive »
5 – Exécuter le script
Dès lors que vous avez fait cela, vous pouvez exécuter le script en cliquant sur « Exécuter ». Si tout fonctionne bien dans le journal d’exécution vous devrez trouver un « Avis Exécution terminée » comme message.
Et quand on se rend dans le dossier Google Drive, on retrouve bien nos fichiers QR Code en image.
Voilà vous savez maintenant comment créer et exporter des QR Codes automatiquement avec Google Sheets.