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

Flutter/Dart中如何将List转换为DataTable的行?

将cardbills列表转换为DataTable行的实现方法

核心思路

遍历cardbills列表中的每个账单对象,将其映射为DataRow,每个字段对应一个DataCell,确保单元格顺序与表头列顺序一致即可。

完整代码示例

首先确认表头生成函数(如果未实现):

List<DataColumn> getColumns(List<String> columnNames) {
  return columnNames.map((name) => DataColumn(label: Text(name))).toList();
}

然后修改DataTable的rows属性:

DataTable(
  columns: getColumns(['serial', 'value', 'vat', 'total', 'energy']),
  rows: cardbills.map((bill) {
    return DataRow(cells: [
      DataCell(Text(bill['serial'])),
      // 用toStringAsFixed控制小数位数,让表格显示更整齐
      DataCell(Text(bill['value'].toStringAsFixed(4))),
      DataCell(Text(bill['vat'].toStringAsFixed(4))),
      DataCell(Text(bill['total'].toStringAsFixed(4))),
      DataCell(Text(bill['energy'].toString())),
    ]);
  }).toList(),
)

关键说明

  • cardbills是List<Map<String, dynamic>>类型,直接通过map方法遍历转换即可
  • 数值类型字段需转为字符串才能在Text组件中显示,toStringAsFixed(n)可指定保留n位小数,优化视觉效果
  • 单元格顺序必须和columns定义的表头顺序完全对应,否则内容会错位

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 16:50:43