自定义 Apache 超集中的数字格式

Posted

技术标签:

【中文标题】自定义 Apache 超集中的数字格式【英文标题】:Customise the number format in Apache superset 【发布时间】:2020-08-08 20:23:37 【问题描述】:

我正在尝试在 apache 超集中进行一些自定义。我想以印度格式显示超集图表中的数字。例如。 1

10

100

1,000

10,000

1,00,000

10,00,000

1,00,00,000

10,00,00,000

当我浏览图表时,在数字格式下拉菜单中,没有选项可以显示这样的数据。我已经在我的机器上设置了一个开发版本的超集,发现它使用了一个包 superset-ui-number-format。现在我不知道该怎么做。我是 superset 的新手,非常感谢您的帮助或指导。

【问题讨论】:

【参考方案1】:

如果您可以编辑 Superset 实例/部署的代码,则有一种方法可以完成此操作。这假设您已从 GitHub 中提取代码,因此有一个 superset-frontend 文件夹。如果是这样,则打开superset-frontend/src/setup/setupFormatters.js 并执行以下操作:

    在顶部,在 createDurationFormatter 旁边,确保从 @superset-ui/number-format 导入 createD3NumberFormatter

    除了getNumberFormatterRegistry() 之后的所有registerValue 条目之外,再添加一个如下所示:

.registerValue(
  'CURRENCY_INDIA',
  createD3NumberFormatter(
    locale: 
      decimal: '.',
      thousands: ',',
      grouping: [3, 2, 2, 2, 2, 2, 2, 2, 2, 2],
      currency: ['₹', ''],
    ,
    formatString: '$,.2f',
  ),
)

然后,当您在探索视图中编辑图表时,您可以输入 CURRENCY_INDIA 作为您的格式化程序,它应该可以工作!

或者,如果您要维护superset-ui 的分支,您可以将其添加为探索可视化控件中包含的选项。为此,您可以将其添加到 superset-ui_preset/packages/superset-ui-chart-controls/src/shared-controls/index.tsx 作为导出的 D3_FORMAT_OPTIONS 之一。

【讨论】:

有计划向主分支提出拉取请求吗? 我没有打算为这个@Adi 开 PR,因为我还没有听说有任何其他需求,我担心如果我为一种货币添加格式化程序,我们可能应该对所有其他主要货币都这样做......并添加一些配置标志以启用哪些标志。感觉就像一个滑坡。如果你想开PR,去吧!或者,如果您不是工程师,只是需要它,请告诉我,我可以做到。

以上是关于自定义 Apache 超集中的数字格式的主要内容,如果未能解决你的问题,请参考以下文章

Shiny 和 R 中的 DT:自定义数字格式

使用 Apache POI 在条件格式中自定义背景颜色

s-s-rS 报告中的自定义数字格式

Apps 脚本:带有文本的自定义数字格式

来自用户窗体的自定义数字格式

Excel表格自定义数字格式如何设置