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

如何在Apps Script中适配Google Sheets各类货币格式?

修改方案

直接重构你的配置对象,把单一货币符号改成完整的自定义数字格式字符串,同时补全格式应用的代码逻辑,就能覆盖所有特殊格式的货币需求。

修改后的完整脚本

function onEdit(e) {
  // 每个货币对应完整的Google Sheets自定义数字格式
  const currencyFormats = {
    'us dollar': '$#,###0.00',
    'euro': '€#,###0.00',
    '阿尔巴尼亚列克': 'Lek#,###0.00',
    '阿尔及利亚第纳尔': 'din#,###0.00',
    '白俄罗斯卢布': '#,###0.00 p.',
    '丹麦克朗': '#,###0.00 kr.'
    // 可继续添加其他货币的格式
  };

  let sheet;
  // 校验触发条件:编辑事件有效、编辑单元格为G13、所在工作表是Start
  if (!e || !e.value 
      || e.range.getA1Notation() !== 'G13' 
      || (sheet = e.range.getSheet()).getName() !== 'Start') {
    return;
  }

  // 获取选中货币对应的格式
  const targetFormat = currencyFormats[e.value.toLowerCase()];
  if (!targetFormat) {
    // 若选中的货币不在配置内,可清空格式或做其他处理
    sheet.getRange("A1:A100").setNumberFormat(""); // 替换为你的实际数据范围
    return;
  }

  // 将格式应用到目标数据区域(示例用A1:A100,替换成你需要格式化的单元格范围)
  sheet.getRange("A1:A100").setNumberFormat(targetFormat);
}

关键改动说明

  1. 重构配置逻辑:不再仅存储货币符号,直接存储Google Sheets支持的完整自定义数字格式字符串,比如:
    • 前缀特殊文本格式:Lek#,###0.00 对应显示 Lek1,000.00
    • 后缀单位格式:#,###0.00 kr. 对应显示 1,000.12 kr.
  2. 修复语法问题:原脚本中const format = ${currency}#,###0.00;是无效的模板字符串写法,现在直接从配置中读取完整格式,避免语法错误。
  3. 补全格式应用步骤:原脚本仅定义了格式变量但未实际应用到单元格,现在添加setNumberFormat方法,将配置好的格式批量应用到目标数据区域。

扩展提示

如果需要新增其他货币支持,只需在currencyFormats对象中添加对应的键值对即可,格式规则完全遵循Google Sheets自定义数字格式语法(比如不需要小数位可写成Lek#,###)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 11:05:20