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

如何通过Google Apps Script在Google Sheet中旋转指定角度的图片?

Google Sheets图片旋转45度的GAS实现方案

SpreadsheetApp提供的OverGridImage对象(即getImages()返回的图片实例)确实没有原生的旋转方法,你尝试的rotate()和setRotate()不存在是正常的。以下是两种可行的实现方案:

方案一:调用Google Sheets API实现旋转

该方案需要先启用Sheets API,直接通过API修改图片的旋转属性:

  1. 在脚本编辑器中启用Sheets API:

    • 点击菜单栏「资源」→「高级Google服务」
    • 找到「Google Sheets API」并开启
  2. 完整代码示例:

const ss = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/d/id...");
const sheet = ss.getSheetByName('Sheet 1');
const images = sheet.getImages();
const lastImage = images[images.length - 1];

// 调整尺寸
lastImage.setWidth(100);
lastImage.setHeight(100);

// 获取图片的关键ID
const sheetId = sheet.getSheetId();
const objectId = lastImage.getObjectId();

// 调用Sheets API设置旋转角度
Sheets.Spreadsheets.batchUpdate({
  requests: [
    {
      updateImageProperties: {
        objectId: objectId,
        fields: "rotation",
        imageProperties: {
          rotation: 45 // 旋转角度,单位为度
        }
      }
    }
  ]
}, ss.getId());

方案二:本地处理图片后重新插入

如果不想启用API,可以先下载图片,用App Script的图片服务旋转后替换原图片:

const ss = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/d/id...");
const sheet = ss.getSheetByName('Sheet 1');
const images = sheet.getImages();
const lastImage = images[images.length - 1];

// 记录原图片的位置和尺寸
const anchorRow = lastImage.getAnchorRow();
const anchorColumn = lastImage.getAnchorColumn();
const width = 100;
const height = 100;

// 获取图片URL并下载
const imageUrl = lastImage.getUrl();
const response = UrlFetchApp.fetch(imageUrl);
const blob = response.getBlob();

// 旋转图片(使用App Script的Image服务)
const image = ImageApp.open(blob);
const rotatedBlob = image.rotate(45).getBlob();

// 删除原图片,插入旋转后的新图片
lastImage.remove();
sheet.insertImage(rotatedBlob, anchorColumn, anchorRow)
  .setWidth(width)
  .setHeight(height);

注意事项

  • 方案一中,首次运行脚本会触发授权请求,需要允许相关权限。
  • 方案二中,如果图片是私有或需要权限访问的外部链接,可能需要添加OAuth授权头处理,否则会下载失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 02:22:13