Apps 脚本删除图像

Apps Script Delete Image

我有这个脚本:

function testchartbuild() {  
  var sheet = SpreadsheetApp.getActiveSheet();
  var chart = sheet.newChart()
    .setChartType(Charts.ChartType.LINE)
    .asLineChart()
    .setOption("useFirstColumnAsDomain", false) 
    .addRange(sheet.getRange("BA24:BD231"))
    .setNumHeaders(1)
    .setPosition(5, 5, 0, 0)
    .setOption("legend", {position: "bottom"})
    .setOption("width", 690)
    .setOption("height", 195)
    .build();
  
  // create an image from that EmbeddedChart
  sheet.insertImage(chart.getBlob(),58,2);  // this works
};

目前创建图表并将其作为图像显示在我的 sheet 上效果很好。我这样做是因为我无法在锁定行上方创建图表。每次我 运行 脚本时,它都会在旧图像之上创建一个新图像(如果脚本之前是 运行)。我想编辑脚本,以便它首先查看是否已经存在另一个图像,将其删除,然后用新的图表图像替换它。我一直在到处寻找先删除旧图像的方法,但无法弄清楚。任何帮助都会很棒!谢谢

在您的情况下,为了删除锚单元格为“BF2”的现有图像,进行以下修改怎么样?

发件人:

  .build();

// create an image from that EmbeddedChart
sheet.insertImage(chart.getBlob(),58,2);  // this works

收件人:

  .build();

sheet.getImages().forEach(e => {
  if (e.getAnchorCell().getA1Notation() == "BF2") {
    e.remove();
  }
});

// create an image from that EmbeddedChart
sheet.insertImage(chart.getBlob(),58,2);  // this works

注:

  • 如果要删除所有存在的图片,请修改上面的修改如下。

      sheet.getImages().forEach(e => e.remove());
    

参考文献: