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

如何在AG Grid中按行设置格式(百分比/千分位分隔符)

按行实现AG Grid数据格式化方案

核心思路是利用valueFormatter结合行数据的标识字段,动态选择对应的格式化规则,无需转置行列。

1. 定义带标识的行数据

给每行添加一个用于区分类型的字段(比如示例中的col1),明确该行是数值行还是百分比行:

const rowData = [
  { col1: 'value', col2: 2345.6, col3: 3677.7 },
  { col1: 'percentage', col2: 0.138, col3: 0.096 }
];

2. 配置列定义并实现动态格式化

在columnDefs中,针对需要格式化的列,编写valueFormatter函数,根据当前行的标识字段选择对应格式:

// 复用格式化逻辑,避免重复代码
const formatCellValue = (value, isPercentage) => {
  if (isPercentage) {
    // 百分比格式,保留1位小数
    return new Intl.NumberFormat('en-US', { 
      style: 'percent', 
      minimumFractionDigits: 1, 
      maximumFractionDigits: 1 
    }).format(value);
  } else {
    // 千分位数值格式,保留1位小数
    return new Intl.NumberFormat('en-US', { 
      minimumFractionDigits: 1, 
      maximumFractionDigits: 1 
    }).format(value);
  }
};

const columnDefs = [
  { field: 'col1', headerName: 'col1' },
  {
    field: 'col2',
    headerName: 'col2',
    valueFormatter: params => formatCellValue(params.value, params.data.col1 === 'percentage')
  },
  {
    field: 'col3',
    headerName: 'col3',
    valueFormatter: params => formatCellValue(params.value, params.data.col1 === 'percentage')
  }
];

说明

  • 使用原生Intl.NumberFormat处理格式化,比自定义正则更可靠,还能灵活切换地区格式(比如把en-US换成zh-CN适配中文千分位)。
  • 若你的行标识字段不是col1,替换为实际字段名即可(比如单独定义type: 'value'或type: 'percentage')。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 18:42:10