You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Sheets App Script:从URL插入图片时设置图片宽度

Google Sheets插入图片统一设置宽度的解决方案

你可以通过SpreadsheetApp.newCellImage()提供的setWidth()方法固定图片宽度,图片会自动按原比例缩放高度,保证清晰显示。以下是适配Message Bird这类非Drive外部图片URL的修改后完整脚本:

function onOpen(e) {
  let ui = SpreadsheetApp.getUi();
  ui.createMenu('🤖 Automation')
    .addItem('Insert Images', 'insertCellImages')
    .addToUi();
}

function insertCellImages() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const lastRow = sheet.getLastRow();
  const targetWidth = 200; // 自定义你需要的标准宽度
  const rowHeight = 150; // 对应宽度设置合适行高,保证图片完整显示
  
  // 遍历所有行
  for (let row = 1; row <= lastRow; row++) {
    let url = sheet.getRange(row, 3).getValue(); // Column E(注:此处第3列为C列,若需E列应改为5)
    if (url && typeof url === 'string' && url.trim() !== "") {
      let imageRange = sheet.getRange(row, 9); // Column N
      
      try {
        // 创建图片并设置固定宽度
        let image = SpreadsheetApp.newCellImage()
          .setSourceUrl(url)
          .setWidth(targetWidth)
          .build();
        imageRange.setValue(image);
        // 设置行高适配图片
        sheet.setRowHeight(row, rowHeight);
        Logger.log("Inserted image in row " + row);
      } catch (error) {
        Logger.log("Error in row " + row + ": " + error.toString());
        imageRange.setValue("");
      }
    }
  }
  
  SpreadsheetApp.getUi().alert('Image insertion complete!');
}

关键修改说明:

  • 添加setWidth(targetWidth):指定图片标准宽度,图片会按原始宽高比自动计算高度,避免变形
  • 添加sheet.setRowHeight(row, rowHeight):手动设置行高,确保缩放后的图片能完整显示在单元格内
  • 可根据需求调整targetWidth和rowHeight的数值,比如把宽度设为180、行高设为120等

内容的提问来源于stack exchange,提问作者Robin Shaw

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 16:40:00