4

このコードは、画像を挿入するために機能します

しかし、GoogleシートからURLを取得したいです。「UrlFetchApp.fetch("sourceSheet.getActiveCell().getValue()");」と入れました。

以下のコードで、これを解決する方法についての私の考えを示します...

  function insertImage() {



  // Retrieve an image from the web.
  var resp = UrlFetchApp.fetch("sourceSheet.getActiveCell().getValue()");

  // Create a document.
  var doc = DocumentApp.openById("1qWnGAR_WBpHkSdY5frld0VNfHtQ6BSzGxlzVNDi5xMk");

  // Append the image to the first paragraph.
  doc.getChild(2).asParagraph().appendInlineImage(resp);
}

最終的な目標は、ドキュメントの ID を 1 つの列に、画像の ulr をもう 1 つの列に挿入するシートを作成することです。スクリプトを実行して、各ドキュメントに各画像を挿入できるようにします。

4

2 に答える 2

7

これが可能な解決策です。もちろん、ドキュメント ID とスプレッドシート ID を独自のドキュメント ID に置き換える必要があります。

function insertImage() {
  // Get the target document.
  var doc = DocumentApp.openById("1DeAGfM1PXXXXXXXXXXXXXXXXXXwjjeUhhZTfpo");

  // Get the Spreadsheet where the url is defined
  var sheet = SpreadsheetApp.openById("0Agl8XXXXXXXXXXXXXXXXXXXXXXXXXRScWU2TlE");

  // Get the url from the correct celll
  var url = sheet.getRange("A1").getValue();

  // Retrieve an image from the web.
  var resp = UrlFetchApp.fetch(url);

  // Append the image to the first paragraph.
  doc.getChild(0).asParagraph().appendInlineImage(resp.getBlob());
}
于 2013-11-06T21:06:36.537 に答える
3

これはEduardo のスクリプト(Thx Eduardo) に基づいて構築され、スプレッドシートを繰り返し処理し、すべての行でこのプロセスを実行する機能を追加します。これを行うために、各行の別のドキュメントに別の画像を挿入できるようにしました。

AutoCrat はこのような画像の挿入をまだサポートしていないため、これが私が見つけた最善の回避策です。

このスクリプトをテストするために、lastRow = 3. 3 を変更sheet.getLastRow()して、シート全体を作成します。

また、"getsheetbyname" は単一引用符 'XXX' を使用することに注意してください。これは、スペースが含まれているためです。

function insertImage() {
    var startRow = 2;  // First row of data to process
    var lastRow = 3;   // Last row of data to process

    for (var i = startRow; i <= lastRow; i++)
    {
        // Get the Spreadsheet where the url is defined
        var sheet = SpreadsheetApp.openById("0AsrSazSXVGZtdEtQOTFpTTFzWFBhaGpDT3FWcVlIasd").getSheetByName('88. Research');


        // Get the target document.
        var docid = sheet.getRange("F"+i).getValue();

        var doc = DocumentApp.openById(docid);

        // Get the url from the correct cell
        var url = sheet.getRange("D"+i).getValue();

        // Retrieve an image from the web.
        var resp = UrlFetchApp.fetch(url);

        // Append the image to the first paragraph.
       doc.getChild(0).asParagraph().appendInlineImage(resp.getBlob());
    }

}

// replace 3 with sheet.getLastRow()
于 2013-11-07T02:25:47.223 に答える