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

Google Sheets中如何将特定字符串替换为对应指定图片

万智牌法术力符号自动转图片实现方法

SUBSTITUTE函数失效的核心原因是它仅支持纯文本内容替换,单元格内存储的图片属于嵌入对象,无法被函数识别为可拼接的替换值,用下面两种方案即可实现需求:

方案1:Apps Script脚本实现(推荐,完美匹配需求)

支持在原单元格内直接把字符串中的法术力标记替换为内联图片,保留其他文本内容,和你预期的效果完全一致:

  • 打开表格顶部菜单栏「扩展程序」→「Apps Script」,打开脚本编辑器
  • 粘贴以下代码,替换代码里的工作表名称、目标单元格范围,补全你需要的所有法术力符号和对应图片直链的映射:
function replaceManaSymbols() {
  // 替换为你存储卡牌数据的工作表名称
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("卡牌数据");
  // 替换为你存储法术力字符串的单元格范围,例如下方为D列从第2行到最后一行
  const targetRange = sheet.getRange("D2:D");
  // 配置法术力符号和对应图片直链的映射,按需补全所有符号即可
  const manaMap = {
    "{3}": "https://i.sstatic.net/0Fa7N.png",
    "{G}": "https://i.sstatic.net/s6Vw1.png",
    "{W}": "白法术力图片直链",
    "{U}": "蓝法术力图片直链",
    "{B}": "黑法术力图片直链",
    "{R}": "红法术力图片直链"
  };
  const cellValues = targetRange.getValues();
  const richTextResult = [];

  cellValues.forEach(row => {
    const cellContent = row[0];
    if (!cellContent || typeof cellContent !== "string") {
      richTextResult.push([
        SpreadsheetApp.newRichTextValue()
          .setText(cellContent ? String(cellContent) : "")
          .build()
      ]);
      return;
    }
    let textBuilder = SpreadsheetApp.newRichTextValue().setText(cellContent);
    Object.keys(manaMap).forEach(symbol => {
      let findPos = cellContent.indexOf(symbol);
      while (findPos !== -1) {
        const manaImg = SpreadsheetApp.newCellImage().setSourceUrl(manaMap[symbol]).build();
        textBuilder = textBuilder.insertInlineImage(findPos, findPos + symbol.length, manaImg);
        findPos = cellContent.indexOf(symbol, findPos + 1);
      }
    });
    richTextResult.push([textBuilder.build()]);
  });
  targetRange.setRichTextValues(richTextResult);
}
  • 保存脚本后首次运行需要按提示完成账号授权,之后可以给脚本设置编辑时自动触发,或者在表格界面插入一个绑定脚本的按钮,点一下就能批量完成指定范围内所有符号的替换。

方案2:纯公式实现(无需写代码,适合轻量场景)

如果不想使用脚本,可以用IMAGE函数配合嵌套SUBSTITUTE实现,缺点是无法在同一个单元格内混排图片和普通文本,仅适合单独展示法术力费用的列:

  • 新建一个隐藏工作表命名为mana映射,A列填写所有需要识别的法术力字符串(例如{3}、{G}),B列对应填写=IMAGE("对应图片直链")
  • 在需要显示法术力图标的单元格,通过嵌套SUBSTITUTE配合IMAGE完成替换,例如固定识别{3}{G}的公式为:
=IMAGE("https://i.sstatic.net/0Fa7N.png")&IMAGE("https://i.sstatic.net/s6Vw1.png")

如果需要批量适配不同的法术力组合,可以搭配REDUCE和REGEXEXTRACT函数遍历映射表自动拆分替换,维护成本比多层嵌套SUBSTITUTE更低。

注意:所有图片链接必须是直接返回图片内容的直链,不能是带页面跳转的普通网页链接,否则图片无法正常加载。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 15:54:19