Google apps script 如何获得一个;“单元格中的图像”;从电子表格中复制并作为内嵌图像复制到文档中?
我已经设置了一个电子表格作为数据库来存储类似目录的信息。此信息的一个重要元素是最终用户使用Google电子表格的菜单选项“在单元格中插入-->图像-->图像”在用户首页中插入的图像。然后使用脚本中的“SpreadsheetApp.CopyPasteType.PASTE_VALUES”将此图像复制到存储表中 现在我正在制作一个文档,作为数据库中存储的信息的输出。问题是我无法将图像从电子表格解析到文档。我甚至无法从电子表格中得到它 我上网寻找解决办法,但一无所获。我发现的最接近的问题是一个2岁的类似问题,没有直接回答: 我的逻辑是,如果我将图像作为值粘贴到单元格中,我应该能够使用.getValue()将其恢复,但显然不是这样。我试着把它当成一团,但运气不好。我对斑点不太熟悉,所以可能是我做错了 任何想法都将不胜感激:) 理想情况下,文档中现有的行内图像应替换为电子表格中的图像单元格。我得到的错误是:“执行失败:无法将数组转换为元素”Google apps script 如何获得一个;“单元格中的图像”;从电子表格中复制并作为内嵌图像复制到文档中?,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我已经设置了一个电子表格作为数据库来存储类似目录的信息。此信息的一个重要元素是最终用户使用Google电子表格的菜单选项“在单元格中插入-->图像-->图像”在用户首页中插入的图像。然后使用脚本中的“SpreadsheetApp.CopyPasteType.PASTE_VALUES”将此图像复制到存储表中 现在我正在制作一个文档,作为数据库中存储的信息的输出。问题是我无法将图像从电子表格解析到文档。我甚至无法从电子表格中得到它 我上网寻找解决办法,但一无所获。我发现的最接近的问题是一个2岁的类似
有什么想法吗?所以我没有把它写得很清楚,但它应该会给你一些接近你想要的信号,但首先是一个解释: 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);
}