Documented table capabilities include: - Table structure and utility controls: rearrange/add/hide columns, custom columns, row numbers, resize columns. - Column-heading operations: filter by column, distribution, distinct values, combine columns, extract date parts, extract URL parts, sum over time. - Cell click behaviors and detail views from key columns. - Per-column formatting: - Text: title, text alignment, wrap, display as text/link/email/image/automatic. - Date: date style, abbreviation, show time, time style, alignment. - Number: mini bar chart, style (number/percent/scientific/currency), separators, decimals, multiply, prefix/suffix. - Currency: unit, label style, where currency unit is shown. - Conditional formatting: - Single color rules (numeric or text match/contains), optional whole-row highlight. - Color range rules for numeric columns. - Rule ordering with precedence. - Dashboard-context behavior: custom destinations for columns, table pagination on dashboard cards.
From Preset Table Chart and recent Superset changes:
- Table chart controls include:
- Row limits.
- Column rearrangement (viewer interaction).
- Per-column customization (width, alignment, number format via D3/small-number formatting controls).
- Color +/- conventions for numeric sign coloring.
- Conditional formatting rules.
- Recent Superset table conditional formatting expansion introduces explicit target/object concepts including:
- ENTIRE_ROW
- BACKGROUND_COLOR
- TEXT_COLOR
- CELL_BAR
- String conditional formatting support and handling fixes for empty/null values are called out in release notes.
Note: Superset table options vary across legacy table and AG Grid table modes; the above reflects currently documented Preset/Superset table-chart controls and recent upstream changes.
Looker table chart formatting (visualization-level) includes: - Sizing/layout: - Size Columns to Fit. - Minimum column width. - Per-column width. - Per-column customization: - Custom label. - Numeric value format (predefined or custom Excel-style format). - Cell text layout controls: font color, background fill, bold/italic/underline, horizontal alignment. - Cell visualization (in-cell bars), palette selection/customization, value labels. - Collapse subtotals. - Formatting menu: - Color collection and palettes. - Row text size. - Header font size, text color, background color, horizontal alignment. - Conditional formatting: - Up to 3 rules. - Rule ordering/precedence. - Apply to all numeric fields or selected fields. - Scale-based or logical-condition-based formats. - Scale options: custom palette, steps, mirrored ranges, min/mid/max control with numeric or percentile anchors. - Include totals toggle. - Include null as zero toggle.
LookML formatting and clickable behavior includes:
- value_format (Excel-style value formatting).
- value_format_name (named/built-in reusable formats).
- style (tier formatting behavior).
- html (HTML field formatting).
- Click/drill behavior control via field parameters (e.g., drill_fields, link).
TanStack is intentionally unopinionated on visual style, but exposes a strong formatting model through column defs:
- Column categories: accessor, display, grouping.
- Data/value extraction:
- accessorKey, accessorFn, unique id rules.
- Rendering hooks:
- cell, aggregatedCell, header, footer.
- Clear separation of data model concerns (sorting/filtering/grouping) from renderer output.
Documented formatting/styling surface includes:
- Value pipeline:
- valueGetter (derive value used by filter/sort/render baseline).
- valueFormatter (display formatting only).
- renderCell (custom React rendering).
- Header formatting:
- headerClassName, headerAlign.
- Cell formatting:
- cellClassName, column align.
- Row formatting:
- getRowClassName for row-level dynamic class styling.
- Theme/system styling:
- sx prop and custom CSS overrides.
- striped rows and section styling patterns.
DataTables formatting-related primitives center on renderer + row callbacks:
- columns.render:
- Per-cell render function or config.
- Orthogonal data support by operation (display, filter, sort, type, plus extension-specific types).
- Can return DOM node for display in newer versions.
- createdRow:
- Hook for row creation styling/manipulation.
- rowCallback:
- Hook for row-level post-processing each draw.
Tabulator has one of the broadest table formatting surfaces:
- Column styling/layout props:
- hozAlign, vertAlign, headerHozAlign, width/min/max, resizable, frozen, tooltip, cssClass.
- Formatter architecture:
- formatter, formatterParams.
- titleFormatter, titleFormatterParams.
- export-specific formatters: formatterPrint, formatterClipboard, formatterHtmlOutput (+ params variants).
- rowFormatter for row-level styling.
- Built-in formatter catalog includes (documented page list):
- plaintext, textarea, html, money, image, link, datetime, datetime diff, tick/cross, color, star, traffic light, progress, array, lookup, json, toggle, row number, row handle, row selection, responsive collapse, adaptable, button variants.
- Interaction linkage:
- cellClick and related callbacks.
AG Grid formatting/styling surface is split across column, cell, and row APIs:
- Cell/column:
- valueFormatter, valueGetter, cellRenderer.
- cellStyle, cellClass, cellClassRules.
- headerName, headerClass, headerTooltip (and related header customization).
- Row:
- rowStyle, getRowStyle.
- rowClass, getRowClass.
- rowClassRules with dynamic re-evaluation on data change.
- Hover/interaction style helpers:
- row and column highlight options (ag-row-hover, ag-column-hover behavior patterns).
Cross-tool evidence supports treating bars/sparklines as formatting-owned cell visuals:
- Metabase: number columns can display mini bar charts in cells.
- Looker: table options include cell visualizations (bars) alongside value/text formatting.
- Superset: conditional formatting includes a CELL_BAR object type.
- Tabulator: progress/traffic/star and related formatters are cell formatter variants, not separate chart objects.
Implication for Dataface: - In-cell bars/sparklines should live under the same formatting schema as number/text/link behavior. - Existing spark support should be migrated into this unified formatting namespace, not kept as a parallel feature path.
Tableau’s table/crosstab-related formatting is broad and layered. The full documented feature set relevant to tables includes:
global -> worksheet/table -> column/field -> row/cell -> conditional rules).style.table + style.columns for M2.style.columns.<id>.visual for in-cell bars/sparklines so micro-viz and formatting compose cleanly.value_format: https://docs.cloud.google.com/looker/docs/reference/param-field-value-formatvalue_format_name: https://docs.cloud.google.com/looker/docs/reference/param-field-value-format-namelink: https://docs.cloud.google.com/looker/docs/reference/param-field-linkcolumns.render: https://datatables.net/reference/option/columns.rendercreatedRow: https://datatables.net/reference/option/createdRowrowCallback: https://datatables.net/reference/option/rowCallback