将图片(来自网址)从Google表格单元格插入Google文档

时间:2013-11-06 17:11:44

标签: google-apps-script google-sheets

此代码适用于插入图像

但我想从Google表格中获取网址。我把“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以及要插入另一列的图像的ulr。我希望脚本能够运行,以便我可以将每个图像插入到每个文档中。

2 个答案:

答案 0 :(得分:7)

这是一个可能的解决方案。当然,您必须使用自己的文档ID替换Document和Spreadsheet 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());
}

答案 1 :(得分:3)

这建立在Eduardo's Script(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()