我希望能够通过Google云端硬盘将图片文件添加到我的电子表格中。我看到有一个内置的图像功能可用=图像,但这需要一个URL,你的图像文件在互联网上公开共享,我正在处理数字资产,不能公开分享。
我有以下代码,这可行,但不会添加到所需的单元格,这是否可能?
function insertImageFromDrive(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var fileId = '0B5UAkV0avfiKNGYtd1VzUzlsTVk';
var img = DriveApp.getFileById(fileId).getBlob();
sheet.insertImage(img, 4, 3)
}
答案 0 :(得分:3)
尝试使用App Script中的指南Insert image in a spreadsheet:
function insertImageOnSpreadsheet() {
var SPREADSHEET_URL = 'INSERT_SPREADSHEET_URL_HERE';
// Name of the specific sheet in the spreadsheet.
var SHEET_NAME = 'INSERT_SHEET_NAME_HERE';
var ss = SpreadsheetApp.openByUrl(SPREADSHEET_URL);
var sheet = ss.getSheetByName(SHEET_NAME);
var response = UrlFetchApp.fetch(
'https://developers.google.com/adwords/scripts/images/reports.png');
var binaryData = response.getContent();
// Insert the image in cell A1.
var blob = Utilities.newBlob(binaryData, 'image/png', 'MyImageName');
sheet.insertImage(blob, 1, 1);
}
只需替换必要的值即可。您指定插入图像的单元格的部分位于:
sheet.insertImage(blob, 1, 1);
答案 1 :(得分:1)
有一个谷歌电子表格插件ImageKit,以帮助插入来自不同来源的多个图像,包括谷歌驱动器,检查出来> https://chrome.google.com/webstore/detail/imagekit/cnhkaohfhpcdeomadgjonnahkkfoojoc 在这里,您可以找到工具界面的屏幕截图。
答案 2 :(得分:0)
答案 3 :(得分:0)
如果驱动器映像文件未在您的Google驱动器上公开,则是不可能的。话虽如此,但有一个技巧可以克服i。
首先确保映像文件是驱动器上的临时公共文件。您也可以通过将文件权限更改为DriveApp.Access.ANYONE
,DriveApp.Permission.EDIT
来通过应用脚本执行此操作。然后,驱动器文件就像是来自互联网的文件。然后,您可以添加Blob。
之后,您可以决定两件事。 改回权限或从驱动器中删除图像文件(如果您只想使用嵌入到Blob中的图像文件(如果需要,还可以通过应用程序脚本代码)
祝你好运
答案 4 :(得分:0)
这是另一个不涉及斑点的替代方法:
var fileId = "...";
sheet.insertImage("https://docs.google.com/uc?id=" + fileId, column, row);
请确保您的文件已打开链接共享,否则此方法将不起作用。
Documentation