7

作業現場のデータを Google スプレッドシートに収集し、作業現場の写真を仕事ごとに作成する Google ドライブ フォルダーに収集する WebApp があります。ジョブ完了レポートの一部としてシートを印刷できるように、すべてではありませんが一部の写真を Google スプレッドシートのセルで表示できる必要があります。

Google ピッカーを使用して、現場の仕事に固有のフォルダーにファイルをアップロードします。そこからそれらを使用する最良の方法がわかりません。

などのセル数式の設定に成功 =IMAGE("hllp://i.imgur.com/yuRheros.png", 4, 387, 422)しましたが、Web 上の他の場所から画像を取得した場合のみです。

このようなパーマリンクのトリックを使用してもうまくいき=IMAGE("hllp://drive.google.com/uc?export=view&id=0B8xy-TdDgbjiFoOldUlLT091NXM", 4, 387, 422)ません。Google がそれらのリンクに対して行う URL リダイレクトを許容しないと思います。

私が読んだがまだ試していない他の方法は、実際のブロブをセルに書き込むことです。ただし、その後のレポートの書式設定を制御できなくなるのではないかと思います。

おそらく、いくつかのセルにいくつかの方法で画像仕様を記録する必要があるでしょう。

  1. その Google ドライブ ハッシュ キー
  2. その寸法
  3. imgur.com (または同様のもの) の別の場所
  4. そのブロブ

画像を開いて手動で URL をコピーするのと同じように、Google がリダイレクトした画像の最終 URL をプログラムで取得する方法はありますか? それを永遠に信頼できますか、それとも時間の経過とともに変化しますか?

更新: =IMAGE("hllp://drive.google.com/uc?export=view&id=0B8xy-TdDgbjiFoOldUlLT091NXM", 4, 387, 422) が機能しないことについては間違っています。スプレッドシートの所有者が画像の所有者でもある場合でも、画像を「リンクを知っている全員」に共有することが不可欠です。

私の解決策として 1.hash key と 2.dimensions だけを記録するつもりですが、他の誰かがより良いアイデアを持っているかどうかを知りたいです.

4

3 に答える 3

4

ドライブで画像の ID を取得すると仮定すると、次のようなコードを使用してシートの最後の行に画像を挿入できます (URL は通常とは少し異なります)。

  ...
  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
  ...

表示しようとしているファイルの共有プロパティを慎重に確認することをお勧めします。ファイルは「パブリック」に設定するか、「パブリックに共有」されているフォルダーに移動する必要があります。

于 2014-11-07T14:10:24.850 に答える