此代码适用于插入图像
但我想从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。我希望脚本能够运行,以便我可以将每个图像插入到每个文档中。
答案 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()