7

Mam narzędzie WebApp, które zbiera dane z witryny służbowej do arkusza kalkulacyjnego Arkusza Google, a także gromadzi zdjęcia z witryny służbowej w folderze Dysku Google, który utworzę dla każdego zadania. Niektóre, ale nie wszystkie, zdjęcia muszą być widoczne w komórce w Arkuszach Google, tak aby arkusz mógł zostać wydrukowany jako część raportu o zakończeniu pracy.Jaki jest właściwy sposób, aby programowo umieścić obraz Dysku w komórce Arkuszy?

Używam narzędzia Google Picker do przesyłania plików do folderu określonego dla zadania w miejscu pracy. Nie jestem pewien, jak najlepiej z nich korzystać.

Udało mi się ustawić wzór komórki, taki jak =IMAGE("hllp://i.imgur.com/yuRheros.png", 4, 387, 422), ale tylko z obrazami pobranymi z innych stron w Internecie.

Używanie takich jak ten =IMAGE("hllp://drive.google.com/uc?export=view&id=0B8xy-TdDgbjiFoOldUlLT091NXM", 4, 387, 422) nie działa; Myślę, że nie będzie tolerować przekierowania URL-a, które Google wykonuje dla tych linków.

Innym sposobem, o którym czytałem, ale jeszcze nie próbowałem, jest wpisanie rzeczywistej kropli do komórki. Podejrzewam jednak, że utracę kontrolę nad późniejszym formatowaniem raportu.

Być może będę musiał nagrywać specyfikację obrazu na kilka sposobów w różnych komórkach:

  1. jego Dysku Google hash klucza
  2. jego wymiary
  3. jego zastępca lokalizacja w imgur.com (lub podobny)
  4. jego blob

Czy istnieje sposób programowy, aby uzyskać przekierowany końcowy URL dla Google obraz, równoważny z otwarciem obrazu i ręcznym skopiowaniem adresu URL? Czy można ufać temu na wieki, czy też zmienia się z czasem?

Aktualizacja: mylę o = IMAGE ("hllp: //drive.google.com/uc eksport = view & id = 0B8xy-TdDgbjiFoOldUlLT091NXM", 4, 387, 422) nie działa. Istotne jest, aby obraz był udostępniany "każdemu, kto ma link", nawet jeśli właściciel arkusza kalkulacyjnego jest również właścicielem tego obrazu.

Mam zamiar nagrać tylko klucz 1.hash i 2.rozszerzenia jako moje rozwiązanie, ale z przyjemnością dowiem się, czy ktokolwiek ma lepszy pomysł.

+0

właśnie zadał podobne pytanie tutaj: http://webapps.stackexchange.com/questions/86081/insert-image-from -google-drive-into-google-sheets Na razie używam programu Picasa, aby rozwiązać problem, ale nie jest idealny, ponieważ adresy URL obrazów muszą być kopiowane jeden po drugim. – Jonny

Odpowiedz

3

I przygotował skrypt z dwoma wierszami, aby użyć linku do udostępniania obrazu na Dysku Google.

  1. Przejdź do menu Narzędzia> Edytor skryptów.
  2. Kopiuj, wklej następujący kod
  3. Kliknij na metę za zgodą

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

Używanie skryptu:

  1. skopiować link udział obrazu Dysku Google.
  2. idź do komórki
  3. wprowadzić formułę

    =IMAGE(DRIVE_IMAGE("COPIED_LINK")) 
    
+0

Powinieneś opublikować pełne rozwiązanie _tutaj_ zamiast łączenia się z nim. Zdaję sobie sprawę, że witryna na drugim końcu łącza jest witryną wymiany stosu, ale co, jeśli to pytanie lub twoja odpowiedź zostały usunięte? To nie miałoby sensu samo w sobie. –

+0

To wygląda na odpowiedź, której szukałem, ale tak dawno temu już jej nie potrzebuję. Dlaczego, teraz, postaw, że to właściwa odpowiedź? . . . dobrze Bhacaz :-) –

+0

To nie działa – Cooper

3

Zakładając uzyskać identyfikator obrazu na dysku, można użyć kodu jak poniżej, aby wstawić obraz w ostatnim wierszu arkusza (URL jest nieco inna niż zwykle):

... 
    var img = DriveApp.getFileById('image ID');// or any other way to get the image object 
    var imageInsert = sheet.getRange(lastRow+1, 5).setFormula('=image("https://drive.google.com/uc?export=view&id='+img.getId()+'")');// in this example the image is in column E 
    sheet.setRowHeight(lastRow+1, 80);// define a row height to determine the size of the image in the cell 
    ... 

proponuję, aby dokładnie sprawdzić właściwości współdzielenie plików, które starają się pokazać: muszą być ustawione na „publiczne” z przeniósł się w folderze, który jest również „publicznie udostępniane”

+0

Tak, dzięki Serge, już to mam, ale niewątpliwie przyszli widzowie skorzystają z tego, jak to zrobić. Ponieważ jest to raport, muszę użyć = image (adres URL, 4, szerokość, wysokość), aby kontrolować wymiary. Obliczam stosunek wysokości do szerokości, a następnie skaluję, aby pasował do mniejszego z dwóch wymiarów komórki. –

+0

https://drive.google.com/uc?export=view nie działa już podgląd obrazu. Właśnie próbowałem tego i nie dostałem miniaturki. – rahulserver

+0

nadal działa, włóż to w komórce arkusza kalkulacyjnego: = image („https://drive.google.com/uc?export=view&id=0B3qSFd3iikE3TUFFLTJiOWYzNThhLTNhYzQtNGZlMi1hZjJhLWExNTZhNWY1MzEzYg”) –

Powiązane problemy