Insertar imagen de Google Drive en Hojas de cálculo de Google


11

¿Cómo inserto / enlace a imágenes existentes en una carpeta en Google Drive en una hoja de cálculo de Hojas de cálculo de Google?

Existe la función image (), imagino usarla de esta manera:

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

¿Cómo?

Actualización: Algunas personas notaron que al subir imágenes a Picasa, podemos obtener la URL de cada imagen y usarla. Funciona. La desventaja de esto es que tenemos que copiar todas y cada una de las URL de todas las imágenes. Puse eso en una hoja separada, luego uso BUSCARV para obtener cada URL de imagen por índice. Funciona, pero la parte de copia de URL es un gran trabajo si tienes muchas imágenes, por supuesto. Se necesita una mejor solución.

Respuestas:


5

Respuesta corta

Si bien es posible usar archivos almacenados en Google Drive como recursos del sitio web en este momento, no es oficialmente compatible y no debe usarse para sitios web y hojas de cálculo que tengan una vida útil posterior al 31 de agosto de 2016.

Como fue mencionado por AE I en su respuesta a una pregunta relacionada, el uso de https://docs.google.com/uc?export=view&id=FILE_IDno está documentado y podría dejar de funcionar en cualquier momento sin previo aviso oficial, pero en este momento (febrero de 2019) todavía funciona.

Explicación

Las instrucciones para publicar archivos de Google Drive como contenido del sitio web se encuentran en Publicar contenido del sitio web - API REST de Google Drive, pero de acuerdo con la obsolescencia del soporte de alojamiento web en Google Drive - Blog de desarrolladores de Google Apps

A partir del 31 de agosto de 2015, el alojamiento web en Google Drive para usuarios y desarrolladores quedará en desuso. Puede continuar utilizando esta función por un período de un año hasta el 31 de agosto de 2016, cuando descontinuaremos la publicación de contenido a través de googledrive.com/host/[doc id].


4

Hice un script de dos líneas para usar el enlace para compartir una imagen en Google Drive.

  1. Vaya a Herramientas> Editor de secuencias de comandos.
  2. Copia, pega el siguiente código
  3. Haga clic en ejecutar para obtener permiso

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

Usando el script:

  1. Copie el enlace para compartir su imagen en Google Drive.
  2. Ir a una celda
  3. Ingrese la fórmula

    =IMAGE(DRIVE_IMAGE("COPIED_LINK"))
    

Este script no funciona: el error es "TypeError: no se puede llamar al método" replace "de undefined. (Línea 3, archivo" Code ")" (Lo siento, el script es algo mágico para mí, así que no puedo ofrecer mucho más en esta vez)
cduston

@cduston ¿Has seguido los pasos?
Rubén

Obteniendo el mismo error que @cduston
Vikram Garg

3
  1. Tendrás que hacer una hoja de cálculo.
  2. Luego vaya a herramientas> editor de script.
  3. Puede cortar / pegar la secuencia de comandos a continuación reemplazando todo el contenido que se colocó por defecto.
  4. Deberá agregar su ID de carpeta donde dice THIS_SHOULD_BE_YOUR_FOLDER_ID (deje las comillas).
  5. Guárdalo
  6. Presiona el botón reproducir / ejecutar
  7. Deberá darle permiso para ejecutarse cuando se le solicite.

Deberias hacer eso. Ejemplo de trabajo de salida aquí .

/* 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
Puede que haya respondido en exceso :) - La URL seríahttps://docs.google.com/uc?export=download&id=FILE_ID
Tom Woodward


2

La mejor y más fácil manera de manejar esto es mediante el uso de una fórmula sustituta y tener dos columnas aquí es la explicación a continuación:

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"))

Explicación: esto convertirá el archivo de imagen indirecta de la imagen de Google en un enlace directo y le dará el resultado de la imagen que desee.

Captura de pantalla:

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí


1

Puede hacerlo mediante el enlace a la URL de un dibujo de Google, los pasos a continuación:

  1. Cree un nuevo dibujo en Google Drive (haga clic con el botón derecho en cualquier carpeta de Google Drive, "Más", "Dibujo")
  2. pegue su imagen allí
  3. File -> Publish to web -> As Link, Comienza a publicar
  4. Copie la URL proporcionada y vaya a la celda de la Hoja de Google que desea insertar
  5. =image("URL you copied")

Duplica los datos, por lo que no está vinculando a la imagen real sino a un dibujo de Google que tiene una copia de la imagen. Cualquiera podría acceder a ese enlace y descargar en cualquiera de los formatos compatibles (JPEG, PNG, SVG o PDF).


Un salvavidas, gracias!
post_ahead

0

Tomé la respuesta anterior de (Zeeshan) y la combiné en una celda.

Ingrese esto en la celda:

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

Reemplace "https://drive.google.com/open?id=1cmtBYSbobv3FYpKKBCPvS"con su "Enlace para compartir"

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.