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

Customise the number format in Apache superset

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

10

100

1,000

10,000

1,00,000

10,00,000

1,00,00,000

10,00,00,000

当我浏览图表时,在数字格式下拉列表中没有显示这样数据的选项。我已经在我的机器上设置了 superset 的开发版本,发现它使用的是包 superset-ui-number-format。现在我不知道如何进行。我是 superset 的新手,如果能提供一点帮助或 guidance 将不胜感激。

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

  1. 在顶部,确保 createDurationFormatter@superset-ui/number-format

    导入 createD3NumberFormatter
  2. 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 的分支,您可以将其添加为探索可视化控件中包含的选项。为此,您可以将其作为导出的 D3_FORMAT_OPTIONS.

之一添加到 superset-ui_preset/packages/superset-ui-chart-controls/src/shared-controls/index.tsx