Composants → bpm.table

bpm.table

Tableau de données avec tri, lignes alternées, survol et lignes cliquables pour accéder au détail.

StableAffichage de données⏱ 3 min
ProduitPrixStockStatut
Widget A29,99142En stock
Widget B49,9938Stock bas
Widget C9,99500En stock
Widget D79,990Rupture
Widget E19,99210En stock

Cliquez sur une ligne pour afficher le détail.

Python
import bpm
import pandas as pd

df = pd.DataFrame({
  "Produit": ["Widget A", "Widget B", "Widget C"],
  "Prix": [29.99, 49.99, 9.99],
  "Stock": [142, 38, 500],
})

bpm.table(df, striped=true, hover=true)
PropTypeDéfautRequisDescription
columnsColumn[]OuiDéfinition des colonnes (key, label, align, decimals optionnels). Par défaut : texte à gauche, chiffres à droite.
dataRecord<string, unknown>[][]NonDonnées à afficher.
stripedbooleantrueNonLignes alternées.
hoverbooleantrueNonSurbrillance au survol.
onRowClick(row) => voidNonCallback au clic sur une ligne.
defaultSortColumnstring | nullnullNonColonne de tri initiale.
defaultSortDirection'asc' | 'desc''asc'NonDirection du tri initial.
valueLocalestringfr-FRNonLocale pour formater les nombres (ex. fr-FR → 1 000,50, en-US → 1,000.50).
valueDecimalsnumber0NonDécimales par défaut pour les cellules numériques. Surcharge possible par colonne (decimals).
valueGroupingbooleantrueNonSéparateur de milliers (false = 1000,50 sans espace).

Exemples

bpm.table(df, striped=True, hover=True)
# Clic sur une ligne pour ouvrir le détail
bpm.table(df, on_row_click=lambda row: bpm.write(row["id"]))
# Tri initial par colonne "Prix" décroissant
bpm.table(df, default_sort_column="Prix", default_sort_direction="desc")
# Format des nombres (comme bpm.metric)
bpm.table(df, value_locale="en-US", value_decimals=2, value_grouping=True)
# Alignement par colonne (left | center | right)
bpm.table(df, columns=[{"key": "Nom", "label": "Nom"}, {"key": "Montant", "label": "Montant", "align": "right"}])