我正在尋找一種方法來添加和洗掉單元格中的影像。
我已經將按鈕分配給了這個函式,但我似乎無法將其添加到動態范圍中。如果我為測驗而對列和行進行硬編碼,它可以很好地添加圖片,但我卻不知道如何洗掉它。
function test() {
var sheet = SpreadsheetApp.getActiveSheet()。
var selection = sheet.getSelection()。
var ranges = selection.getActiveRangeList().getRanges() 。
for (var i in ranges) {
var data = ranges[i].getValues();
for (var row in data) for (var col in data[row] ) {
var cell = data[row][col];
if (cell == '') continue; // if empty --> go to next cell.
IF CELL CONTAINS IMAGE REMOVE IT
continue; / --> go to next cell。
} else {
sheet.insertImage("URL", [col], [row], 125, 2); /在列/行添加圖片。
}
}
ranges[i].setValues(data)。
}
}
點擊按鈕之前
點擊按鈕后
選擇新單元格
點擊按鈕后
uj5u.com熱心網友回復:
我相信你的目標是如下的。
- 當腳本在單元格被選中后運行時,你想把影像放在單元格上。
- 當影像沒有放在單元格上時,你想把影像放在單元格上。
- 當影像已經放在單元格上時,您想洗掉該影像。
- 當單元格的值為空時,你不希望做任何事情。
在這種情況下,下面這個修改后的腳本如何呢?
修改后的腳本:
function test(){
const url = "##"; // Please set your URL..
const sheet = SpreadsheetApp.getActiveSheet()。
const ranges = sheet.getActiveRangeList().getRanges() 。
let images = sheet.getImages()。
ranges.forEach(r => {
const row = r.getRow() 。
const col = r.getColumn();
const numRows = r.getNumRows()。
const numCols = r.getNumColumns() 。
for (let i = 0; i < numRows; i ) {
for (let j = 0; j < numCols; j ) {
if (sheet.getRange(row i, col j).isBlank() continue。
const image = images.filter(e => {
const anchor = e.getAnchorCell() 。
return anchor.getRow() == row i & & anchor.getColumn() == col j。
});
if (image.length > 0) {
image.forEach(span class="hljs-params">e => e.remove()) 。
images = sheet.getImages()。
} else {
sheet.insertImage(url, col j, row i, 125, 2) 。
}
}
}
});
}
- 首先,請設定你的URL。
- 當你使用這個腳本時,請選擇單元格并運行該腳本。
- 當你對選定的單元格運行這個腳本時,影像將被放在沒有影像的單元格上,而影像將從有影像的單元格中被洗掉。
- 在這種情況下,可以使用OverGridImage類的getAnchorCell()方法檢查單元格上的影像。
參考資料:
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/333028.html
標籤:




