AdaptTable for MUI
Spreadsheet formulas in MUI
A formula column is a column nobody wrote code for: type =ROUND(budget * 0.15, 0) and the table computes it per row, sorts it, filters it and exports it like any other column.
The engine covers arithmetic, comparison, string joins, IF, and the aggregate functions a footer needs. A bad reference reports in the cell that caused it rather than blanking the table, and a circular reference reports #CYCLE! instead of recursing.
Formula columns serialize to the URL with everything else, so a derived column travels in the same link as the filters it sits beside.
There is no MUI-specific formula code: the engine returns ordinary column definitions, so a computed column is a TableCell like any other and an error value is the text inside it.
The code
import { DataTable } from "@adapttable/mui";
import { buildFormulaColumns } from "@adapttable/core/formula";
const derived = buildFormulaColumns([
{
key: "margin",
header: "Margin",
formula: "=ROUND(budget * 0.15, 0)",
},
{
key: "tag",
header: "Tag",
formula: '=UPPER(team) & " · " & role',
},
]);
export function People({ rows, columns }) {
return (
<DataTable
data={rows}
columns={[...columns, ...derived]}
rowKey={(row) => row.id}
/>
);
}
Install
pnpm add @adapttable/mui @adapttable/core @mui/material
The same feature in the other kits
- Spreadsheet formulas in Mantine — Rounded, friendly, filled controls
- Spreadsheet formulas in Chakra — Soft teal, generous radius
- Spreadsheet formulas in Ant Design — Compact, tinted header, crisp
- Spreadsheet formulas in Radix — Radix Themes, iris accent
- Spreadsheet formulas in Base UI — Unstyled primitives, blue accent
- Spreadsheet formulas in shadcn — Monochrome, ring focus
- Spreadsheet formulas in Tailwind — Unstyled — your own classes
More MUI features
- Filtering in MUI — Kit-native operators, date ranges, checklists, an AND/OR tree, chips.
- Column management in MUI — Show, hide, reorder, pin and resize — from a menu you did not write.
- Column groups in MUI — Spanning headers that collapse to a stub, a kept child, or a custom cell.
- Row selection in MUI — A set of ids that survives paging, with bulk actions over it.
- Rows in MUI — Pin, drag-reorder, merge cells, and a 3-dot menu per row.
- Inline cell editing in MUI — Kit-native editors in the cell; every write goes through your handler.
- Row grouping in MUI — Nested group headers with counts, subtotals, footers and collapse state.
- Nested tables in MUI — A real table under a row — same engine, own columns, own keys.
- Export and print in MUI — CSV, XLSX and PDF from one seam — plus a real print layout.
- Large datasets in MUI — 100k rows, 40 columns, virtualized rows and columns, sticky chrome.
- Tree data in MUI — Rows that contain rows — nesting, chevrons, keyboard traversal.
- Mobile cards in MUI — Every row becomes a card on phones. Automatically, with the same state.
- Pivot tables in MUI — Rows down the side, dimensions across the top, subtotals at every level.
- Saved views in MUI — Name an arrangement, share it as a link, manage the list in place.
- Right-to-left MUI data table — Arabic strings, a flipped axis, and a popover that opens from the right edge.
- Live updates in MUI — Rows change while you read them. Sort and selection hold.
- Accessible MUI data table — Arrow-key focus, a visible ring, and every announcement shown as text.
Reference: formulas. More of this kit: AdaptTable for MUI, or the live demo.