A 栏 | B 栏 |
---|---|
细胞1 | 细胞2 |
细胞3 | 4 号电池 |
我想要来自单元格 2 或 4 单元格 3(而不是单元格内部)的图像,具体取决于单元格 1 中的内容。
我愿意;
我已经尝试过来自优秀“Tanaike”的脚本,这些脚本可以从网络或 Google 驱动器中获取图像,但我找不到一种方法来“更改”over-cell 图像。我还希望通过从同一张 Google 表格中获取它们将更加面向未来并且加载速度更快。
我已经使用了 Tanaike 的这个脚本,但想适应使用同一张纸上可以更改的图像; function TanikeGDimageOverCells() {
//puts Google drive image in A2
const imageFileId = "0BxWwc9tEdCGOTHEtc3hLYl9vNGc";
// imageFileID is the Google Drive image address between the last two back slashes / /
// To get image address right click image in Google Drive>Share>Copy Link. Can paste after // on this code page
// https://drive.google.com/file/d/0BxWwc9tEdCGOTHEtc3hLYl9vNGc/view?usp=sharing&resourcekey=0-tamUYNwWIaOhtc14-W216A
// Takes approx. 3 seconds for 14kb image
// Note Image must be less than 2mb
const blob = DriveApp.getFileById(imageFileId).getBlob();
// Prepares image
SpreadsheetApp.getActiveSheet().insertImage(blob, 1, 3);
// Put image over cells, first No. is col, row
}
示例代码
function onEdit(e) {
var editedRange = e.range.getA1Notation().toString();
console.log(SpreadsheetApp.getActiveSpreadsheet().toast(editedRange))
if (editedRange == "A1") {
replacetTheImage();
}
}
function replacetTheImage() {
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1").getRange("A1");
var valueoftheA1 = ss.getValue();
if(valueoftheA1 > 399){
console.log(SpreadsheetApp.getActiveSpreadsheet().toast("I was here 1"))
var images = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1").getImages();
var blob = DriveApp.getFileById("1bIz3v9UDp-qq8qWfM-CK_OxWl9m7d7qY").getBlob();
images[0].replace(blob);
}
SpreadsheetApp.flush();
}
输出示例之前:
之后
OnEdit - 触发器图像.替换(Blob)
注意:如果您对此还有更多疑问,请随时发表评论。