![](/img/trans.png)
[英]Google sheet insertImage function stopped working for Google Apps Script: verify image error
[英]Google Apps Scripts: InsertImage() function isn't working
我正在嘗試將驅動器中的 png 圖像粘貼到電子表格中。 很多文章都說 Sheet Class 上的insertImage()
可以實現這一點,但是當我運行下面的代碼時,我不斷收到調用 insertImage() 的服務錯誤。 我在谷歌上搜索並在這里查找,但還沒有找到解決方案。 我做錯了什么?
function pastePhotosFromDrive(){
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("畫像");
var folderId = "XXXXXXXXXXXXXXXXXXXXXXXXXXX";
var files = DriveApp.getFolderById(folderId).getFiles();
var row = 1;
var col = 1;
Logger.log(files);
// var file1 = files.next();
// var blob1 = file1.getBlob());
while(files.hasNext()){
var file = files.next();
var blob = file.getBlob();
sheet.insertImage(blob, col, row);
row += 3;
if(row >= 25){
col = 0;
row += 20;
}
}
}
這個答案怎么樣?
我認為在你的情況下,認為可能會出現以下2種情況。
作為幾種解決方法之一,我想建議通過選擇圖像文件來修改圖像的大小。
當您的腳本被修改時,請進行如下修改。
在您使用此腳本之前, 請在 Advanced Google Services 中啟用 Drive API 。
while(files.hasNext()){
var file = files.next();
var blob = file.getBlob();
sheet.insertImage(blob, col, row);
row += 3;
if(row >= 25){
col = 0;
row += 20;
}
}
while(files.hasNext()){
var file = files.next();
if (file.getMimeType().indexOf("image") > -1) { // Here, the image file is selected.
var blob;
var obj = Drive.Files.get(file.getId());
var imageMetadata = obj.imageMediaMetadata;
if (imageMetadata.height * imageMetadata.width > 1048576) {
var width = 500; // Here, as a test case, 500 pixels is used for the width.
var tlink = obj.thumbnailLink.replace(/=s\d+/, "=s" + width);
blob = UrlFetchApp.fetch(tlink).getBlob();
} else {
blob = file.getBlob();
}
sheet.insertImage(blob, col, row);
row += 3;
if(row >= 25){
col = 0;
row += 20;
}
}
}
如果我誤解了您的問題並且這不是您想要的結果,我深表歉意。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.