가격

개발자별 라이선스, 월간 또는 연간 결제 — PivotGrid와 DataGrid를 모두 포함합니다. 최종 사용자 앱에 무제한으로 사용할 수 있습니다. 세금과 청구는 Paddle이 처리합니다.

비교를 위해 월 기준으로 표시했습니다. 연간 플랜은 선불로 한 번 청구되고 매년 갱신되며, 언제든지 해지할 수 있습니다.

Community

피벗 테이블과 데이터 그리드, 무료

무료
  • 수백만 행도 부드럽게 처리
  • 끌어다 놓기로 보고서 작성
  • 데이터 정렬, 필터링, 그룹화
  • 셀 색상 지정 및 전체 대비 비율 표시
  • 저장된 뷰, 테마, 12개 언어
  • 파일 가져오기, CSV·JSON·인쇄로 내보내기
  • DataGrid도 포함 — 가상화된 행, 고정 열, CSV 내보내기
  • GitHub 커뮤니티 지원
무료로 시작하기

Developer

1인 개발자용

$15.42/월

연 1회 $185 청구

연간 결제 시 연 $43(19%) 절약

  • Community의 모든 기능, 추가로:
  • PivotGrid: 사용자 정의 계산 필드
  • PivotGrid: 시각적 필터 빌더와 드릴다운
  • PivotGrid: 인터랙티브 차트
  • PivotGrid: 서식이 적용된 Excel·PDF 내보내기
  • DataGrid: 검증과 조회가 되는 인라인 편집
  • DataGrid: 범위 선택, 채우기 핸들, 붙여넣기
  • DataGrid: 다단계 그룹화와 마스터-디테일
  • DataGrid: 서식이 적용된 Excel·PDF 내보내기
  • 개발자 1명, 앱 무제한
  • 1년간 업데이트

Team

소규모 팀용

$58.25/월

연 1회 $699 청구

연간 결제 시 연 $249(26%) 절약

  • Developer의 모든 기능, 추가로:
  • 최대 5명의 개발자
  • 우선 이메일 지원
  • Developer 문의보다 먼저 답변
  • 1년간 업데이트

Enterprise

대규모 조직용

맞춤
  • Team의 모든 기능, 추가로:
  • 개발자 수 무제한
  • 계약에서 정한 지원 조건
  • 맞춤 기능 요청
  • 세금계산서 및 구매 발주
영업팀에 문의

모든 유료 플랜에는 독점 @kanunilabs/pivotgrid-react-enterprise + @kanunilabs/pivotgrid-enterprise + @kanunilabs/datagrid-react-enterprise + @kanunilabs/datagrid-enterprise 패키지가 포함되며, 고객별 토큰으로 비공개 레지스트리에서 제공됩니다.

Licence questions

Who counts as a developer?

Every person who writes or modifies code that uses the library needs a seat. Designers, testers, product managers and CI machines do not. A contractor writing code for you counts as one of your seats for the duration of the work.

One licence, two components — really?

Yes. A paid key unlocks the Enterprise features of BOTH DataGrid and PivotGrid. There is no separate purchase and no second key to install.

What happens when my subscription ends?

You keep the last version you paid for, and applications already shipped with it stay licensed. You stop receiving new versions and support. Nothing you have deployed stops working or starts showing a watermark.

Can I ship the library inside a product I sell?

Yes, compiled into your application. What you may not do is redistribute the package itself, your registry token or your licence key — see the Terms of Service for the exact wording.

What exactly is free?

The Community edition of both components: no key, no watermark, no expiry, and commercial use is allowed. The table above lists every feature and which edition it needs.

How is the paid package delivered?

From our private registry with per-customer credentials that arrive with your purchase. Public packages are proxied through the same registry, so one line in your .npmrc covers everything.

Who do we buy from, and who invoices us?

Our order process is conducted by our online reseller Paddle.com, the Merchant of Record for all our orders. Paddle issues the invoice, charges and remits sales tax or VAT, takes the payment and handles refunds. The licence itself is granted under our Terms of Service. If your company needs a purchase order, a vendor form or a signed agreement, write to us before you buy.

Do you offer refunds?

Yes. Within 14 days of your purchase you get a full refund for any reason, and we do not ask why. The Refund Policy page explains how to ask and what happens to the licence.

What if we are more than five developers?

The Team tier covers up to five. Beyond that, use Contact sales above and we will quote for your team size.

Every feature, and which edition it needs

Generated from the same inventories the products themselves read — 122 of 185 features across both components need no licence key.

DataGrid

All 118 DataGrid features — 70 free

Data & performance

  • Virtual scrollingCommunityA million rows, with only the visible window in the DOM.
  • Web Worker offloadCommunityFiltering and sorting move off the main thread above ~20,000 rows.
  • Columnar encodingCommunityTyped arrays instead of objects — the reason sort and filter stay fast.
  • Server-side dataCommunityRows load from your server as the user scrolls; filtering, sorting, search, distinct values and totals run there, with Retry and refresh.
  • Server-side grouping & exportEnterpriseYour server groups and totals, opens groups and tree levels on demand, and an export pages through the whole result.
  • Rows pushed by the serverEnterpriseThe grid says which rows are on screen; your server pushes them and every change — a price feed, an order book.
  • PaginationCommunityClassic pager with page size control.
  • Numbered page buttonsCommunityJump straight to a page — 1 2 3 … 40, keyboard accessible.
  • Infinite scrollCommunityAppend rows as the user reaches the end.
  • TransactionsCommunityAdd, update and remove rows without rebuilding the grid.
  • Async transactionsCommunityBatch a burst of live updates into one pass.

Columns

  • SortingCommunitySingle and multi-column, with a custom comparator escape hatch.
  • ResizingCommunityDrag the edge; double-click for best fit.
  • ReorderingCommunityDrag a header to move the column.
  • PinningCommunityFreeze columns to either edge.
  • Visibility & chooserCommunityHide columns and bring them back from a picker.
  • Rename columns in the gridEnterpriseUsers rename a header in place — the name follows into exports and saved views.
  • Bands (multi-level headers)CommunityGroup headers over related columns, collapsible.
  • Auto-size, fit & flexCommunitySize to content, fill the grid exactly, or share its width with flex columns.
  • Automatic columnsCommunityInfer columns from the first row when you have not declared any.
  • Custom sort orderCommunitySort by your own rule — "Critical > High > Normal".
  • Sort by magnitudeCommunityOrder a variance column by size — −50 beside +50.
  • Click cycle per columnCommunityChoose the steps a header click goes through — largest first, or never unsorted.
  • Large integers (BigInt)CommunityExact sorting and filtering of 64-bit ids and amounts, held as bigint or as digits from JSON.
  • Row animationCommunityRows glide to their new place after a sort, a filter or a data change, so a reader keeps track of them.
  • Reorder after sortingCommunityHave the last word after every sort — keep cancelled orders or a total row at the bottom.
  • Cell span / mergeEnterpriseMerge repeating cells down a column.
  • Column spanCommunityDraw a cell across the columns after it, decided per row — a section heading across the grid.
  • Wrapped header textCommunityLong captions wrap onto several lines, and the header grows to the tallest one.
  • Calculated columnsCommunityA spreadsheet formula per column — [Price] * [Qty], IF, ROUND — that sorts, filters, groups and totals like data.
  • Columns your users calculateEnterpriseUsers add, edit and remove calculated columns from the column menu, with a live preview; kept in the saved view.

Filtering

  • Filter rowCommunityA per-column input under the header.
  • Header filter popupCommunityCheckbox list of every distinct value, virtualized and unlimited.
  • Quick searchCommunityOne box across every column, with match highlighting.
  • Filter panel barCommunityShows the active filter as text, with one-click clear.
  • Relative date filtersCommunityFilter a date column by "this month" or "the last 30 days" — typed into the filter row in the grid’s language, kept meaning the same tomorrow.
  • External filterCommunityAND your own row predicate into the grid filter.
  • Your own filter operatorsCommunityAdd operators of your own to a column — “starts with any of”, “within 10 km” — offered in the filter row and the filter builder.
  • Your own filter UICommunityReplace a column’s filter cell or filter popup with a component of your own; it sets the same filter the built-in one would.
  • Multi filterCommunityThe filter row and the popup coexist instead of overwriting each other.
  • Find without filteringEnterpriseCtrl+F inside the grid marks every matching cell and steps through them — no row is hidden.
  • Filter builderEnterpriseNested AND/OR conditions, built visually.

Grouping & hierarchy

  • Grouping (one level)CommunityGroup by a column; drag it to the group panel.
  • Group panelCommunityDrag columns in and out to regroup.
  • Group columnCommunityThe group names, counts and toggles in a column of their own at the start, with its own header, width and sort.
  • Sticky group headersCommunityThe headers of the groups you are scrolling through stay under the column header; the next group pushes them out.
  • Multi-level groupingEnterpriseNest groups as deep as the data goes.
  • Group summariesEnterprisePer-group totals in the group footer.
  • Edit a group totalEnterpriseType a new subtotal and it is shared out over the group’s rows — proportionally or evenly, one undo step.
  • Master-detailEnterpriseExpand a row into your own detail panel, and write the details into Excel and PDF exports.
  • Tree dataEnterpriseHierarchies from a parent key, a path or nested children, with expand/collapse.

Totals

Selection & keyboard

  • Row selectionCommunitySingle, multiple, and checkbox selection.
  • Cell focus & keyboardCommunityArrow keys, Tab, Home/End, Page Up/Down.
  • Focused rowCommunityA highlighted current row, independent of selection.
  • Deferred selectionCommunityApply the selection when the user confirms it.
  • Unselectable rowsCommunityRows your rule refuses cannot be ticked, clicked or picked up by select-all.
  • CopyCommunityCtrl+C, with or without headers.
  • Range selectionEnterpriseDrag a rectangle across cells; Ctrl/Cmd adds more.
  • Column selection from the headerEnterpriseClick a header to select its whole column; Shift widens, Ctrl adds.
  • Fill handleEnterpriseDrag the corner to fill a range, spreadsheet-style.
  • Clipboard callbacksEnterpriseDecide what a copy writes and how a paste is read — raw values, cleaned pastes, your own clipboard.
  • Cut & pasteEnterprisePaste a block from Excel straight into a range.

Editing

  • Cell editingCommunityEdit one cell at a time, committed on blur or Enter.
  • Parse and write valuesCommunityTurn what the user typed into your value (“1,5” → 1.5), and write it your own way — nested objects, immutable stores.
  • Cell formulasEnterpriseType =A1*B2 into a cell: references stay on their cells through sorting and filtering, and the fill handle moves them.
  • Batch editingEnterpriseCollect changes and save them together.
  • Row editingEnterpriseEdit a whole row with save/cancel controls.
  • Form editingEnterpriseEdit the record as a form laid out in the row flow.
  • Popup editingEnterpriseEdit the record in a dialog over the grid.
  • ValidationEnterprisePer-column rules with inline error reporting.
  • CRUD handlersEnterpriseOne call per row — the shape REST and SQL want.
  • PermissionsEnterpriseAllow add, update and delete per row, enforced in the engine.
  • Custom editors & lookupsEnterpriseYour own editor component, or a lookup bound to another source.
  • Undo / redoEnterpriseFull history with a public API and events.

Export & import

  • CSV exportCommunityThe whole result or the current selection.
  • Excel exportEnterpriseReal .xlsx, with the grid’s formatting carried over.
  • Formulas & links in exportsEnterpriseCalculated columns and cell formulas reach Excel as live formulas; a column’s links become hyperlinks in Excel and PDF.
  • PDF exportEnterprisePaginated, with repeated headers; streams for large results.
  • Styled exportEnterpriseNumber formats, banded rows, outline levels, totals.
  • Import wizardEnterpriseFile → column mapping → commit.

Presentation

  • Themes & palettesCommunitySix themes, six palettes, light and dark.
  • DensityCommunityCompact, normal and comfortable row heights.
  • Cards on narrow screensCommunityBelow a width you choose, each row becomes a card — a title, then labelled fields — with a sort control in place of the headers. Same grid underneath: sort, filter, select and scroll a million rows.
  • LocalizationCommunityTwelve languages, and your own strings.
  • TooltipsCommunityAutomatic on truncated text, or your own rich content; open on hover, on keyboard focus or a tap, and let the pointer rest on them.
  • Row numbersCommunityA numbered column that renumbers after sort and filter.
  • Print layoutCommunityEvery row on paper, not just the rendered window.
  • Aligned gridsCommunityTwo grids sharing one column layout.
  • Cell flashCommunityHighlight cells that just changed.
  • Loading & empty overlaysCommunityBuilt-in states you can drive yourself.
  • Pinned rowsCommunitySticky comparison rows above or below the data.
  • Pin rows from the menuCommunityUsers right-click a row to keep it in view above or below the data while they scroll and filter.
  • Row drag & dropCommunityReorder rows, or move them between grids.
  • SparklinesEnterpriseA small chart inside a cell.
  • Cell notesEnterpriseA corner marker with text on hover, editable from the menu.
  • Status barEnterpriseDocked counters and range statistics.
  • Side bar & tool panelsEnterpriseDocked Columns and Filters panels.
  • Your own side bar panelsEnterpriseAdd a tab of your own beside Columns and Filters — a summary, a legend, the selected row.

Charts

  • Chart data hookCommunityShapes the grid’s current result for any chart library.
  • Chart panelEnterpriseDocked charts driven by the grid’s own columns.
  • Chart API, events & saved chartsEnterpriseOpen, update and read the chart from code, hear it open, change and close, and keep it in the saved view.
  • Box plotEnterpriseEach category’s spread of a number column: quartiles, median, whiskers and outliers.
  • Waterfall, funnel, treemap, heatmap & rangeEnterpriseRunning totals, process stages, part-of-whole areas, a value matrix and low-to-high spans, from the same panel.
  • Scatter & bubble chartsEnterpriseOne point per row over two columns, with a size column for bubbles; large sets are sampled evenly and the panel says so.
  • Chart titles, labels & legendEnterpriseTitle, axis titles, legend, values on the marks, text size and colour, label angle, grid lines and line styles.
  • Stacked & 100% chartsEnterpriseColumn, bar, line and area series side by side, stacked, or as shares of 100%.
  • Cross-filter & zoomEnterpriseClick a bar to filter the grid; wheel to zoom the axis.
  • Chart exportEnterpriseSave a chart as PNG, JPEG or SVG at a size you choose, or get it back as a data URL.

Integration

  • EventsCommunityFifty-nine events covering cells, rows, columns, editing and lifecycle.
  • Imperative APICommunityDrive the grid from your own code via the controller.
  • Grid state for AI modelsEnterpriseA JSON Schema of the grid’s filters, sort, grouping and columns for your own model, and a checked apply for its answer.
  • Saved viewsCommunityPersist and restore columns, filters, sort, grouping and footer totals; selection, focus and scroll when you ask for them.
  • Context menusCommunityHeader, row and cell menus you can extend or replace.
  • SSR & bundlersCommunityRenders on the server; works with Vite, Next.js and webpack.

PivotGrid

All 67 PivotGrid features — 52 free

Data & performance

  • Web Worker offloadCommunityAggregation, grouping and filtering run off the main thread, so the UI never blocks on a recompute.
  • No bundler configurationCommunityThe worker is compiled into the package and started from a Blob URL — nothing to wire up in Vite, Webpack or Next.
  • Million-row datasetsCommunityColumnar storage and a trie-based grouper; the playground runs 100 to 1,000,000 rows in the browser.
  • Live updatesCommunityAdd, update and remove rows with `applyTransaction`: only the changed rows are encoded and regrouped, and the result matches a rebuild. A fast feed can queue its ticks with `applyTransactionAsync` and apply them together.
  • Pre-aggregation filterCommunityA predicate applied to the source rows BEFORE the pivot is computed, set through `layout.prefilter`.
  • Visual prefilter builderEnterpriseA multi-condition editor for that predicate, with grouped AND/OR nesting.

Aggregation

  • Six summary typesCommunitysum, count, avg, min, max and distinct count, per measure.
  • Custom summariesCommunity`calculateCustomSummary` with the classic start → calculate → finalize phases, for rollups the built-ins cannot express.
  • Summary display modesCommunityEight post-aggregation transforms: % of total, of row, of column, of the parent row or column, running total, difference and % difference.
  • Calculated fields in codeCommunityDeclare a measure from an expression — row-level or summary-level — in your field definitions. The expression engine is in the free core.
  • Calculated field designerEnterpriseThe no-code modal that lets end users build, edit and delete those formulas from the footer.

Shaping the pivot

  • Row, column, data & filter areasCommunityEvery field declares its area and position; changing them re-pivots.
  • Drag-and-drop field panelCommunityEnd users reshape rows, columns, measures and filters by dragging — no code.
  • Field chooser & settings dialogCommunityA searchable field list plus a per-field settings dialog for summary type, format and sort.
  • Date & number groupingCommunityGroup dates by year, quarter, month, ISO week or day, and numbers into buckets.
  • SortingCommunityAscending, descending, or your own comparator through `calculateCustomSort`.
  • Sort a dimension by a measureCommunityOrder regions by revenue rather than alphabetically, with `sortBySummaryField`.
  • Top-NCommunityKeep only the leading values of a dimension, applied after the sort and per level, with an optional Others row for the remainder.
  • Value & label filtersCommunityKeep the members whose total or caption passes a condition — regions selling over a million, cities starting with A — from the field menu, or with `valueFilter` and `labelFilter`.
  • Quick searchCommunityA search box that narrows the rows to the members you type, accent-insensitive; totals keep counting every row.
  • Too many columns guardCommunityA field with thousands of values dropped into the columns shows the first 1,000 and says so, instead of freezing the page.
  • Header filtersCommunityInclude/exclude value pickers on every row and column header, fully keyboard-driven.
  • Filters set in codeCommunitySeed the same filters from your field definitions with `filterValues` and `filterType`.
  • Expand & collapseCommunityPer-node expansion plus expand-all / collapse-all from the footer.
  • Range selectionCommunityDrag across data cells or row headers to select a rectangular range.
  • Selection statisticsCommunityCount, sum, average, min and max of the selected range, live in the footer.
  • Node context menuCommunityRight-click a header node for bulk expand/collapse of that branch or that whole level.

Layout & totals

Presentation

  • Six built-in themesCommunityLight, dark and high-contrast presets, all driven by CSS variables you can override.
  • Zebra stripingCommunityOne prop.
  • Conditional formattingCommunityExpression rules, colour scales, in-cell data bars and icon sets; several matching rules merge, later ones winning.
  • Cell templatesCommunityRender your own node — a React element, or a string or DOM node in JavaScript — in a data cell instead of the formatted value.
  • Number & date formattingCommunityPer-measure `Intl` options or a formatter function.
  • Twelve localesCommunityEvery label, menu and number format, translated in the box.
  • Right-to-leftCommunityArabic flips the whole layout automatically.

Data in and out

  • File importCommunityCSV, TSV, TXT, Excel (.xlsx/.xls/.xlsm/.xlsb), XML and JSON, with locale-aware type inference.
  • Paste & drag-drop importCommunityDrop a file on the grid or paste delimited text straight into it.
  • Import preview & column mappingCommunityAn optional review step before the rows are applied, with progress and cancellation on large files.
  • CSV, JSON, XML, print & clipboard exportCommunitySeven of the ten export formats, including three JSON shapes and a full session snapshot. CSV output is sanitised against formula injection.
  • Styled Excel exportEnterpriseThe view as a real workbook — merged header spans, total styling and per-measure number formats — or a flat list.
  • PDF exportEnterpriseA print-ready document of the current pivot.

State & reports

  • Named saved viewsCommunityEnd users save, load, update, delete and set a default report — fields and layout together.
  • State persistenceCommunityRestore the grid across reloads from localStorage, sessionStorage, or your own backend through onSave/onLoad.
  • Server-side pivotEnterprisePivot data too large for the browser: your server aggregates, the grid lays the totals out — one level at a time.
  • Pivot layout for AI modelsEnterpriseA JSON Schema of the pivot’s fields, measures, filters, sorts and totals for your own model, and a checked apply for its answer.
  • Controlled fields & layoutCommunityDrive the grid from your own state and observe every change, instead of letting it own its configuration.

Analytics

  • Drill-down dataCommunityClicking a cell resolves the source records behind it and hands them to your handler.
  • Drill-down modalEnterpriseA ready-made searchable, exportable detail grid for those records.
  • Chart synchronisationCommunityA subscription (a hook in React, `createChartSync` in JavaScript) that re-derives chart data on every reshape, expand or filter. You supply the transformer and the chart.
  • Chart transformer & rendererEnterpriseThe transformer that turns an engine result into series, and the chart component that draws them.
  • Cross-filter from the chartEnterpriseClick a bar, slice or cell to filter the pivot to that category; click again to clear.
  • Chart state, events & saved reportsEnterpriseRead and restore the chart from code, hear it change, and keep it — hidden series included — in saved reports.
  • Waterfall, funnel, treemap, heatmap, range, sunburst & histogramEnterpriseRunning totals, process stages, part-of-whole areas, the pivot itself as a heatmap, low-to-high spans, the row hierarchy as rings, and how many members fall in each band of a measure.
  • Scatter & bubble chartsEnterpriseOne point per category at (measure 1, measure 2), a bubble sized by measure 3.
  • Chart titles, labels & legendEnterpriseTitle, axis titles, legend position and data labels; values print with the measure’s own format.
  • Row sparklinesEnterpriseEach row’s trend across the columns, drawn small in its grand-total cell beside the total — as a line or bars.
  • Stacked & 100% chartsEnterpriseColumn, bar, line and area series side by side, stacked, or as shares of 100% with a percent axis.

Platform

  • Headless controllerCommunityBuild your own shell around the controller (`usePivotController` in React, `grid.controller` in JavaScript) and the body/footer components; the grid is not the only entry point.
  • Keyboard navigationCommunityMove, select and open menus without the mouse; the filter popup is fully keyboard-driven.
  • FullscreenCommunityExpand the grid to fill the viewport from the footer.
  • Toolbar configurationCommunityShow or hide each footer control individually.
  • Plugin registryCommunityRegister your own export format or expression resolver; a custom exporter takes precedence over the built-in one, paid ids included.