3

我正在处理 Google Drive 电子表格。

是否可以创建自定义函数/脚本来显示图像?

这个想法是,当我输入函数(=勾号)时,单元格中会显示一个刻度线图像。

4

1 回答 1

2

您可以在 Google 电子表格的单元格中插入 Unicode 字符:

=CHAR(HEX2DEC(“2713”))

这会在单元格中插入一个复选标记。

一种选择是使用onEdit()简单的触发器来检查当前单元格中输入的内容:

function onEdit(e) {
  Logger.log("onEdit ran" + e);
  var input = e.value;

  if (input === "inputTick") {
    var whatCell = e.range;
    //Run a function named insertTick and pass the range
    insertTick(whatCell);
  }; 
};

在上面的示例中,用户需要在单元格中输入“inputTick”。

有一个将图像插入单元格的功能

谷歌文档 =IMAGE()

一种可能的语法:

图片(网址,模式)

您可以使用代码将公式设置(插入)到单元格中:

var cell = sheet.getRange("B5");
cell.setFormula("=IMAGE(url, mode)");

这是一个获取传递的单元格位置的函数,并插入一个带有复选标记的 Unicode 字符的函数。

function insertTick(argWhatCell) {
  Logger.log(argWhatCell);
  //Insert a formula into a cell that converts HEX to a Character
  argWhatCell.setFormula("=CHAR( HEX2DEC( "2713" ))");
}

上面的代码插入了一个函数,然后将 Unicode 转换为复选标记。

如果您想插入无法使用 Unicode 显示的图像,此功能可能会起作用:

function insertTick(argWhatCell) {
  Logger.log(argWhatCell);
  var rngValues = argWhatCell.getValue();

  Logger.log(rngValues);
  var ss = SpreadsheetApp.getActiveSpreadsheet();

  //Get row and column
  var row = argWhatCell.getRow();
  var column = argWhatCell.getColumn();

  Logger.log(row + " : " + column);

  //Insert an image by URL
  ss.insertImage(url, column, row)
}

上面的代码, usinginsertImage()在单元格的位置插入图像,但图像不在单元格内。

于 2015-02-25T18:43:08.653 回答