Google 工作表以编程方式应用自定义货币符号数字格式

Google Sheets Programmatically Apply Custom Currency Symbols Number Format

我想以编程方式应用自定义数字格式,以便我可以在我的单元格中使用自定义货币符号(例如加密货币)并将它们保留为数字,以便我可以对它们进行数学运算或绘制值图表。

我已经查看了以下选项:

例如:=TEXT(SUM(C5:C7),"Ƀ#,##0.00000000")

对 TEXT() 的引用:https://support.google.com/docs/answer/3094139?hl=en

例如:function GBP(amt) { return '£' + parseFloat(amt).toFixed(2)); }

这也行不通,因为结果字符串不是数字:

function BTC(amt) { return parseFloat('Ƀ' + parseFloat(amt).toFixed(2)); }

简而言之,我只想将自定义货币符号添加到我的数字中,并且仍然能够使用它们进行数学运算和绘制图表。有谁知道通过 Google Apps 脚本或电子表格 functions/menus 进行操作的直接方法吗?

要以编程方式将货币格式应用于单个数字并将其保留为数字以便对其进行算术运算,请使用 setNumberFormat(string)

备注:

  • 自定义函数不能用于应用数字格式,因为自定义函数不能修改单元格格式。
  • 条件格式不应用数字格式
  • Google 文档不包含货币格式。它们可以从 Google 表格 UI 中获得。首先通过单击格式 > 更多格式 > 更多货币为单元格设置所需的货币格式,然后单击格式 > 更多格式 > 自定义数字格式...,然后从文本框中复制格式。

示例:

setNumberFormat 是部分实现的 Google Apps 脚本函数,目前应用英镑货币格式 ([$£-809]#,##0.00) 或默认格式 (#,##0.00)。测试函数用于调用它,将 'Pound sterling' 分配给格式参数。

function test(){
  setNumberFormat('Pound sterling');
}

function setNumberFormat(format) {
  var range = SpreadsheetApp.getActiveRange();
  var numberFormat = '';
  try {
    switch (format){
      case 'Pound sterling':
        numberFormat = '[$£-809]#,##0.00';
        break;
      default:
        numberFormat = '#,##0.00';
        break;
    }
    range.setNumberFormat(numberFormat);
  } catch (e){
    throw new Error('There was an error: ' + e);
  }
}

相关问答

参考资料