web-dev-qa-db-ja.com

Googleドライブの画像をGoogleスプレッドシートに挿入する

Googleドライブのフォルダにある画像をGoogleスプレッドシートのスプレッドシートに挿入/リンクするにはどうすればよいですか?

Image()関数があります。次のようなものを使用することを想像します。

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

どうやって?

更新: Picasaに画像をアップロードすることで、各画像のURLを取得して使用できると指摘する人もいました。できます。この欠点は、すべての画像のすべてのURLをコピーする必要があることです。それを別のシートに入れてから、VLOOKUPを使用して、インデックスごとに各画像URLを取得します。もちろん動作しますが、もちろん画像がたくさんある場合、URLコピー部分は非常に面倒です。より良いソリューションが必要です。

10
Jonny

簡潔な答え

現時点では、Googleドライブに保存されているファイルをウェブサイトリソースとして使用することは可能ですが、公式にはサポートされていないため、2016年8月31日以降の寿命を持つウェブサイトおよび spreadsheets .

関連する質問に対する his answer でAE Iが言及したように、https://docs.google.com/uc?export=view&id=FILE_IDの使用は文書化されておらず、事前の公式通知なしにいつでも動作を停止する可能性がありますが、 、2019)それはまだ動作します。

説明

Googleドライブファイルをウェブサイトコンテンツとして公開する手順は ウェブサイトコンテンツの公開-GoogleドライブREST AP​​I にありますが、 Googleドライブでのウェブホスティングサポートの廃止-Google Apps開発者ブログ

2015年8月31日から、ユーザーとデベロッパー向けのGoogleドライブでのウェブホスティングは廃止されます。この機能は、2016年8月31日までgoogledrive.com/Host/[doc id]によるコンテンツの提供を停止するまで1年間使用できます。

4
Rubén

Googleドライブの画像の共有リンクを使用する2行のスクリプトを作成しました。

  1. [ツール]> [スクリプトエディター]に移動します。
  2. 次のコードをコピーして貼り付けます
  3. 許可のために実行をクリックしてください

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

スクリプトの使用:

  1. Googleドライブで画像の共有リンクをコピーします。
  2. セルに行く
  3. 数式を入力してください

    =IMAGE(DRIVE_IMAGE("COPIED_LINK"))
    
4
Bhacaz
  1. スプレッドシートを作成する必要があります。
  2. 次に、[ツール]> [スクリプトエディター]に移動します。
  3. 以下のスクリプトをカット/ペーストして、デフォルトで入れられたすべてのコンテンツを置き換えることができます。
  4. THIS_SHOULD_BE_YOUR_FOLDER_IDと表示されている場所にフォルダーIDを追加する必要があります(引用符を残します)。
  5. それを保存。
  6. 再生/実行ボタンを押す
  7. 求められたら実行する許可を与える必要があります。

それはそれを行う必要があります。出力の実例 ここ

/* 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
Tom Woodward

これを処理する最良かつ簡単な方法は、代替式を使用し、ここに2つの列があることです。

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

これにより、Google画像の間接画像ファイルが直接リンクに変換され、必要な画像結果が得られます。

スクリーンショット:

enter image description here

enter image description here

1
Zeeshan Sangani

これを行うには、Google DrawingのURLにリンクします。手順は次のとおりです。

  1. Googleドライブで新しい描画を作成します(Googleドライブの任意のフォルダーを右クリックして、「その他」、「描画」)
  2. そこに画像を貼り付けます
  3. File -> Publish to web -> As Link、公開を開始
  4. 指定されたURLをコピーして、挿入するGoogleスプレッドシートのセルに移動します
  5. =image("URL you copied")

データを複製するため、実際の画像にリンクするのではなく、画像のコピーを含むGoogle図面にリンクします。誰でもそのリンクにアクセスして、サポートされている形式(JPEG、PNG、SVG、またはPDF)でダウンロードできます。

1
user34612

(Zeeshan)から上記の回答を取得し、1つのセルに結合しました。

これをセルに入力します。

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

"https://drive.google.com/open?id=1cmtBYSbobv3FYpKKBCPvS"を「共有可能なリンク」に置き換えます

0
LaPorte