Insérer une image de Google Drive dans Google Sheets


11

Comment insérer / créer un lien vers des images existant dans un dossier de Google Drive dans une feuille de calcul Google Sheets?

Il y a la fonction image (), j'imagine l'utiliser quelque chose comme ceci:

image("googledrive://somefodleringoogledrivewithmypics/pic_1.png")

Comment?

Mise à jour: certaines personnes ont noté qu'en téléchargeant des photos sur Picasa, nous pouvons ensuite obtenir l'URL de chaque photo et l'utiliser. Ça marche. L'inconvénient est que nous devons copier chaque URL de toutes les images. Je mets cela dans une feuille séparée, puis j'utilise RECHERCHEV pour obtenir chaque URL d'image par index. Cela fonctionne mais la partie de copie d'URL est un sacré boulot si vous avez beaucoup d'images bien sûr. Une meilleure solution est nécessaire.

Réponses:


5

Réponse courte

Bien qu'il soit possible d'utiliser des fichiers stockés dans Google Drive comme ressources de site Web pour le moment, il n'est pas officiellement pris en charge et ne doit pas être utilisé pour les sites Web et les feuilles de calcul dont la durée de vie dépasse le 31 août 2016.

Comme l'a mentionné AE I dans sa réponse à une question connexe, l'utilisation de https://docs.google.com/uc?export=view&id=FILE_IDn'est pas documentée et pourrait cesser de fonctionner à tout moment sans préavis officiel, mais à ce moment (février 2019), cela fonctionne toujours.

Explication

Les instructions pour publier des fichiers Google Drive en tant que contenu de site Web se trouvent dans Publier le contenu du site Web - API Google Drive REST, mais en fonction de la prise en charge de l'hébergement Web obsolète dans Google Drive - Blog des développeurs Google Apps

À partir du 31 août 2015, l'hébergement Web dans Google Drive pour les utilisateurs et les développeurs sera obsolète. Vous pouvez continuer à utiliser cette fonctionnalité pendant une période d'un an jusqu'au 31 août 2016, date à laquelle nous cesserons de diffuser du contenu via googledrive.com/host/[doc id].


4

J'ai créé un script sur deux lignes pour utiliser le lien de partage d'une image dans Google Drive.

  1. Allez dans Outils> Éditeur de script.
  2. Copiez, collez le code suivant
  3. Cliquez sur exécuter pour obtenir la permission

    function DRIVE_IMAGE(link){
        prefix_url = "https://docs.google.com/uc?export=download&";
        link.replace("open?", "uc?export=download&");
    }
    

Utilisation du script:

  1. Copiez le lien de partage de votre image dans Google Drive.
  2. Aller dans une cellule
  3. Entrez la formule

    =IMAGE(DRIVE_IMAGE("COPIED_LINK"))
    

Ce script ne fonctionne pas - l'erreur est "TypeError: Impossible d'appeler la méthode" replace "de undefined. (Ligne 3, fichier" Code ")" (Désolé, le script est une sorte de magie pour moi, donc je ne peux pas offrir beaucoup plus à cette fois)
cduston

@cduston Avez-vous suivi les étapes?
Rubén

Obtenir la même erreur que @cduston
Vikram Garg

3
  1. Vous devrez créer une feuille de calcul.
  2. Ensuite, allez dans outils> éditeur de script.
  3. Vous pouvez couper / coller le script ci-dessous en remplaçant tout le contenu qui a été mis par défaut.
  4. Vous devrez ajouter votre ID de dossier à l'endroit où il est indiqué THIS_SHOULD_BE_YOUR_FOLDER_ID (laissez les guillemets).
  5. Sauvegarde le.
  6. Appuyez sur le bouton play / run
  7. Vous devrez lui donner la permission de s'exécuter lorsque cela vous sera demandé.

Ça devrait le faire. Exemple pratique de sortie ici .

/* modified from @hubgit and http://stackoverflow.com/questions/30328636/google-apps-script-count-files-in-folder 
for this stackexchange question http://webapps.stackexchange.com/questions/86081/insert-image-from-google-drive-into-google-sheets by @twoodwar
*/
function listFilesInFolder(folderName) {

   var sheet = SpreadsheetApp.getActiveSheet();
   sheet.appendRow(["Name", "Date", "Size", "URL", "Download", "Description", "Image"]);


//change the folder ID below to reflect your folder's ID (look in the URL when you're in your folder)
    var folder = DriveApp.getFolderById("THIS_SHOULD_BE_YOUR_FOLDER_ID");
    var contents = folder.getFiles();

    var cnt = 0;
    var file;

    while (contents.hasNext()) {
        var file = contents.next();
        cnt++;

           data = [
                file.getName(),
                file.getDateCreated(),
                file.getSize(),
                file.getUrl(),
                "https://docs.google.com/uc?export=download&confirm=no_antivirus&id=" + file.getId(),
                file.getDescription(),
                "=image(\"https://docs.google.com/uc?export=download&id=" + file.getId() +"\")",
            ];

            sheet.appendRow(data);



    };
};

3
J'ai peut-être trop répondu :) - L'URL seraithttps://docs.google.com/uc?export=download&id=FILE_ID
Tom Woodward

Voir la réponse de @AEI -> webapps.stackexchange.com/a/89112/88163
Rubén

2

Le moyen le plus simple et le plus simple de gérer cela est d'utiliser une formule de substitution et d'avoir deux colonnes ici est l'explication ci-dessous:

Column A5: just put google drive image shareable link e.g.
"https://drive.google.com/open?id=1CfUnvGGdt96irA419HnU0BvRafD4F_os"

Column B5: use the combination of two formula image and substitute like this:
=image(substitute(A5,"open?id","uc?export=download&id"))

Explication cela convertira le fichier d'image indirecte de l'image google en lien direct et donnera le résultat de l'image comme vous le souhaitez.

Capture d'écran:

entrez la description de l'image ici

entrez la description de l'image ici


1

Vous pouvez le faire en créant un lien vers l'URL d'un dessin Google, étapes ci-dessous:

  1. Créez un nouveau dessin dans Google Drive (cliquez avec le bouton droit dans un dossier de Google Drive, "Plus", "Dessin")
  2. collez votre image là-dedans
  3. File -> Publish to web -> As Link, Lancer la publication
  4. Copiez l'URL fournie et accédez à la cellule Google Sheet que vous souhaitez insérer
  5. =image("URL you copied")

Il duplique les données, vous n'êtes donc pas lié à l'image réelle, mais à un dessin Google contenant une copie de l'image. N'importe qui peut accéder à ce lien et télécharger dans l'un des formats pris en charge (JPEG, PNG, SVG ou PDF).


Un épargnant de vie, merci!
post_ahead

0

J'ai pris la réponse ci-dessus de (Zeeshan) et l'ai combinée en une seule cellule.

Entrez ceci dans la cellule:

=image(substitute("https://drive.google.com/open?id=1cmtBYSbobv3FYpKKBCPvS","open?id","uc?export=download&id"))

Remplacez "https://drive.google.com/open?id=1cmtBYSbobv3FYpKKBCPvS"par votre "Lien partageable"

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.