Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 如何获得一个;“单元格中的图像”;从电子表格中复制并作为内嵌图像复制到文档中?_Google Apps Script_Google Sheets - Fatal编程技术网

Google apps script 如何获得一个;“单元格中的图像”;从电子表格中复制并作为内嵌图像复制到文档中?

Google apps script 如何获得一个;“单元格中的图像”;从电子表格中复制并作为内嵌图像复制到文档中?,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我已经设置了一个电子表格作为数据库来存储类似目录的信息。此信息的一个重要元素是最终用户使用Google电子表格的菜单选项“在单元格中插入-->图像-->图像”在用户首页中插入的图像。然后使用脚本中的“SpreadsheetApp.CopyPasteType.PASTE_VALUES”将此图像复制到存储表中 现在我正在制作一个文档,作为数据库中存储的信息的输出。问题是我无法将图像从电子表格解析到文档。我甚至无法从电子表格中得到它 我上网寻找解决办法,但一无所获。我发现的最接近的问题是一个2岁的类似

我已经设置了一个电子表格作为数据库来存储类似目录的信息。此信息的一个重要元素是最终用户使用Google电子表格的菜单选项“在单元格中插入-->图像-->图像”在用户首页中插入的图像。然后使用脚本中的“SpreadsheetApp.CopyPasteType.PASTE_VALUES”将此图像复制到存储表中

现在我正在制作一个文档,作为数据库中存储的信息的输出。问题是我无法将图像从电子表格解析到文档。我甚至无法从电子表格中得到它

我上网寻找解决办法,但一无所获。我发现的最接近的问题是一个2岁的类似问题,没有直接回答:

我的逻辑是,如果我将图像作为值粘贴到单元格中,我应该能够使用.getValue()将其恢复,但显然不是这样。我试着把它当成一团,但运气不好。我对斑点不太熟悉,所以可能是我做错了

任何想法都将不胜感激:)

理想情况下,文档中现有的行内图像应替换为电子表格中的图像单元格。我得到的错误是:“执行失败:无法将数组转换为元素”


有什么想法吗?

所以我没有把它写得很清楚,但它应该会给你一些接近你想要的信号,但首先是一个解释:

Google Sheets无法返回图像的blob,只能返回图像的引用,但Google Drive可以

下面我的解决方案获取Google Drive文件夹中第一个图像的blob,并根据我提供给函数的DocID将其添加到文档中:

function retriveFolder(folderName,imageName,docID){

  var imageFolder = DriveApp.getFoldersByName(folderName).next();

  var firstImageinFolder = imageFolder.getFilesByName(imageName).next();

  var imageBlob =  firstImageinFolder.getBlob();

  DocumentApp.openById(docID).getBody().insertImage(1, imageBlob);

}

我希望这有帮助,当我遇到同样的问题时,我能想出最好的办法。虽然不理想,但应该是一个合适的解决办法。

在当前阶段,无法使用Google Apps脚本检索放入单元格的图像。而且,即使将图像放在图纸上,也无法检索图像的斑点。因此,电子表格中的图像不能用于其他谷歌文档。虽然这可能会在将来修改,但不幸的是,这是当前的答案。我为这种情况感到抱歉。谢谢塔奈克,这至少为我指明了正确的方向,一个不同的方向:(
function retriveFolder(folderName,imageName,docID){

  var imageFolder = DriveApp.getFoldersByName(folderName).next();

  var firstImageinFolder = imageFolder.getFilesByName(imageName).next();

  var imageBlob =  firstImageinFolder.getBlob();

  DocumentApp.openById(docID).getBody().insertImage(1, imageBlob);

}