Wstaw obraz z Dysku Google do Arkuszy Google

11

Jak wstawić / połączyć obrazy znajdujące się w folderze na Dysku Google do arkusza kalkulacyjnego Arkuszy Google?

Istnieje funkcja image (), wyobrażam sobie, że mogę z niej korzystać w następujący sposób:

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

W jaki sposób?

Aktualizacja: niektóre osoby zauważyły, że przesyłając zdjęcia do Picasy, możemy uzyskać adres URL każdego zdjęcia i użyć go. To działa. Minusem tego jest to, że musimy skopiować każdy adres URL wszystkich obrazów. Umieszczam to w osobnym arkuszu, a następnie używam WYSZUKAJ.PIONOWO, aby uzyskać adres URL każdego obrazu na indeks. Działa, ale część do kopiowania adresów URL jest naprawdę świetna, jeśli masz dużo zdjęć. Potrzebne jest lepsze rozwiązanie.

Jonny
źródło

Odpowiedzi:

5

Krótka odpowiedź

Chociaż pliki przechowywane na Dysku Google są obecnie dostępne jako zasoby witryny, nie są one oficjalnie obsługiwane i nie należy ich używać w witrynach i arkuszach kalkulacyjnych , których okres użytkowania przekracza 31 sierpnia 2016 r.

Jak wspomniał AE I w odpowiedzi na powiązane pytanie, użycie https://docs.google.com/uc?export=view&id=FILE_IDnie jest udokumentowane i może przestać działać w dowolnym momencie bez wcześniejszego oficjalnego powiadomienia, ale w tej chwili (luty 2019 r.) Nadal działa.

Wyjaśnienie

Instrukcje publikowania plików z Dysku Google jako treści witryny znajdują się w Publikuj treść witryny - Interfejs API REST Google Drive, ale zgodnie z przestarzałą obsługą hostingu na Dysku Google - Blog deweloperów Google Apps

Od 31 sierpnia 2015 r. Hosting na Dysku Google dla użytkowników i programistów będzie przestarzały. Możesz nadal korzystać z tej funkcji przez okres jednego roku do 31 sierpnia 2016 r., Kiedy to zaprzestaniemy udostępniania treści za pośrednictwem googledrive.com/host/[doc id].

Ruben
źródło
4

Stworzyłem skrypt dwuwierszowy, aby użyć linku udostępniania obrazu na Dysku Google.

  1. Przejdź do Narzędzia> Edytor skryptów.
  2. Skopiuj i wklej następujący kod
  3. Kliknij Uruchom, aby uzyskać pozwolenie

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

Za pomocą skryptu:

  1. Skopiuj link udostępniania swojego obrazu na Dysku Google.
  2. Idź do celi
  3. Wprowadź formułę

    =IMAGE(DRIVE_IMAGE("COPIED_LINK"))
    
Bhacaz
źródło
Ten skrypt nie działa - błąd to „TypeError: Nie można wywołać metody„ replace ”z niezdefiniowanego. (Wiersz 3, plik„ Code ”)” (Przepraszamy, skrypt jest dla mnie magią, więc nie mogę zaoferować dużo więcej na tym razem)
cduston
@cduston Czy postępowałeś zgodnie z instrukcjami?
Rubén
Otrzymywanie tego samego błędu co @cduston
Vikram Garg
3
  1. Musisz zrobić arkusz kalkulacyjny.
  2. Następnie przejdź do narzędzi> edytor skryptów.
  3. Możesz wyciąć / wkleić poniższy skrypt, zastępując całą zawartość, która została wstawiona domyślnie.
  4. Musisz dodać identyfikator folderu, pod którym widnieje THIS_SHOULD_BE_YOUR_FOLDER_ID (zostaw cudzysłowy).
  5. Zapisz to.
  6. Naciśnij przycisk odtwarzania / uruchamiania
  7. Musisz poprosić o pozwolenie na uruchomienie.

Że należy to zrobić. Przykład roboczy danych wyjściowych tutaj .

/* 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);



    };
};
Tom Woodward
źródło
3
Być może odpowiedziałem ponad :) - URL tohttps://docs.google.com/uc?export=download&id=FILE_ID
Tom Woodward
Zobacz odpowiedź @AEI -> webapps.stackexchange.com/a/89112/88163
Rubén
2

Najlepszym i najłatwiejszym sposobem na poradzenie sobie z tym jest użycie wzoru zastępczego i posiadanie dwóch kolumn tutaj to wyjaśnienie poniżej:

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

Objaśnienie spowoduje przekonwertowanie pośredniego pliku obrazu google image na bezpośredni link i wygenerowanie obrazu zgodnie z oczekiwaniami.

Zrzut ekranu:

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

Zeeshan Sangani
źródło
1

Możesz to zrobić, łącząc się z adresem URL rysunku Google, kroki poniżej:

  1. Utwórz nowy rysunek na Dysku Google (kliknij prawym przyciskiem myszy dowolny folder na Dysku Google, „Więcej”, „Rysunek”)
  2. wklej tam swój obraz
  3. File -> Publish to web -> As Link, Rozpocznij publikowanie
  4. Skopiuj podany adres URL i przejdź do komórki Arkusza Google, którą chcesz wstawić
  5. =image("URL you copied")

Powielają dane, więc nie łączysz się z rzeczywistym obrazem, ale z rysunkiem Google, który ma kopię obrazu. Każdy może przejść do tego linku i pobrać go w dowolnym obsługiwanym formacie (JPEG, PNG, SVG lub PDF).

użytkownik34612
źródło
Ratownik życia, dziękuję!
post_ahead
0

Wziąłem powyższą odpowiedź od (Zeeshan) i połączyłem ją w jedną komórkę.

Wpisz to do komórki:

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

Zamień "https://drive.google.com/open?id=1cmtBYSbobv3FYpKKBCPvS"na „Link do udostępniania”

LaPorte
źródło