Everything included

Every feature you need to
analyze your data

11 feature categories. 132+ individual features. All available in both the Community and commercial license tiers.

Get started free β†’See live demo
⊞Pivot Table

Powerful pivot in any app

Drag-and-drop pivot configuration with multi-level hierarchies, subtotals, and calculated fields β€” works exactly like Excel but in the browser.

Read the docs β†’
βœ“
Drag & drop fields
Drag fields from the list into Rows, Columns, Filters, or Values zones. Reorder by dragging within a zone.
βœ“
Multi-level headers
Stack multiple fields in rows or columns to create hierarchical headers up to any depth.
βœ“
Expand / collapse
Expand or collapse individual branches of row/column headers to focus on relevant data.
βœ“
Grand totals
Configurable grand total row and column with position control (top/bottom, left/right).
βœ“
Subtotals
Subtotal rows/columns at each level of a hierarchy. Show or hide per field.
βœ“
Calculated fields
Define custom formula fields with arithmetic expressions over any numeric source fields.
βœ“
Swap axes
Instantly transpose rows and columns with a single click.
βœ“
Non-empty rows/columns
Automatically hide rows or columns where all values are empty or zero (OLAP mode).
βœ“
Undo / Redo
Full pivot state undo/redo history via Ctrl+Z / Ctrl+Y.
βœ“
Deferred update
Batch multiple field changes and apply them all at once with a Refresh click β€” essential for large datasets.
βœ“
Save & restore
Serialize the entire pivot state (including data) to a .wpt JSON file and restore it exactly later.
βœ“
Multiple instances
Any number of isolated <web-pivot-table> elements on the same page with zero cross-contamination.
πŸ—„Data Sources

Connect any data source

Three processing modes cover everything from a small CSV to a billion-row OLAP cube. One consistent API regardless of where your data lives.

Read the docs β†’
βœ“
Memory mode (CSV)
Load CSV or TSV files directly in the browser. No server required. Parses up to ~100 MB with full field detection.
βœ“
Memory mode (Excel)
Import .xls and .xlsx workbooks. Multi-sheet support with automatic field typing.
βœ“
Memory mode (JSON)
Load flat JSON arrays or structured { fields, data } objects from REST APIs.
βœ“
Google Sheets
Load from any public Google Sheet published as CSV β€” no API key required.
βœ“
Server mode (DuckDB)
Large file support with server-side DuckDB aggregation. Only pivot results reach the browser β€” raw data stays on your server.
βœ“
OLAP mode (XMLA)
Connect to SSAS, SAP BW, Kylin, Mondrian, or any XMLA-compliant cube server via MDX queries.
βœ“
Load from URL
Fetch CSV, Excel, or JSON directly from any URL. Cross-origin files route through your optional file proxy.
βœ“
Drag & drop files
Drag local files directly onto the component to load them without a file picker.
βœ“
JavaScript arrays
Supply data programmatically via setWptFromDataArray() β€” ideal for dynamic data pipelines.
βœ“
File proxy support
Route cross-origin file fetches through your server-side proxy to handle CORS and authentication.
βœ“
XMLA proxy support
Route MDX queries through your server to hide OLAP credentials and bypass CORS restrictions.
βœ“
HTTP Basic Auth
Configure username/password authentication for proxy-protected data sources.
βˆ‘Aggregation

Every aggregation you need

10 aggregation functions, 8 Show Values As modes, running totals, date grouping, and sparkline display β€” all per-field and fully configurable.

Read the docs β†’
βœ“
Sum
Sum all non-null values in the group. Default aggregation for numeric fields.
βœ“
Count / Distinct Count
Count all non-null rows, or count only unique values within each cell.
βœ“
Average
Arithmetic mean of all values in the group.
βœ“
Min / Max
Minimum and maximum value within each pivot cell.
βœ“
Median / Mode
Statistical median (middle value) and mode (most frequent value).
βœ“
Standard Deviation / Variance
Population standard deviation and variance for statistical analysis.
βœ“
Percentile (Inc / Exc)
Configurable Nth percentile with inclusive or exclusive interpolation.
βœ“
% of Grand/Column/Row Total
Show each cell as a percentage of the overall total, or of its column or row total.
βœ“
% of Parent Total
Show each cell relative to its parent row or column subtotal β€” great for hierarchy breakdown.
βœ“
Running Total
Cumulative sum along rows (time-series) or columns (category accumulation).
βœ“
Date grouping
Automatically group date or timestamp fields by Year, Quarter, Month, Week, or Day.
βœ“
Sparkline display
Render value fields as inline mini-charts inside the grid cells instead of numbers.
β§©Filtering & Sorting

Precision control over what you see

Label filters, value filters, Top-N, formula-based filtering, and multi-criteria sort β€” giving users full control over the slice of data they analyze.

Read the docs β†’
βœ“
Manual label include
Check individual values to include only those labels in the pivot.
βœ“
Manual label exclude
Check individual values to exclude them from the pivot output.
βœ“
Formula label filter
17 formula operators: equals, contains, begins with, between, not-between, and more.
βœ“
Value filter
Filter rows/columns where an aggregated value field meets a comparison condition.
βœ“
Top N / Bottom N
Show only the top or bottom N items ranked by a chosen value field.
βœ“
Sort by label
Sort row/column labels alphabetically ascending or descending.
βœ“
Sort by value
Sort rows/columns by an aggregated value field β€” find your best/worst performers instantly.
βœ“
Multi-field simultaneous filters
Apply independent filters to multiple row/column fields at the same time.
βœ“
Filter zone
Place fields in the Filters zone to show a dropdown filter picker without adding them to rows/columns.
βœ“
Clear all filters
One-click to remove all active filters while preserving the field layout.
βœ“
Custom field names
Rename any dimension field or value field in the pivot without changing source data.
βœ“
Hide subtotals per field
Suppress subtotal rows/columns for specific fields independently of others.
πŸ“ˆCharts

20+ chart types, powered by Highcharts

From simple bar charts to 3D bubbles and treemaps β€” every chart type responds to your pivot data automatically with full export support.

Read the docs β†’
βœ“
Column & Bar
Vertical and horizontal bar charts. Stacked and grouped variants.
βœ“
Line & Spline
Line chart and smooth spline variant. Ideal for time-series trends.
βœ“
Area & Area-Spline
Area charts with fill. Stacked area for part-to-whole visualization.
βœ“
Pie & Donut
Classic pie and donut charts for proportional distribution.
βœ“
Scatter & Bubble
Scatter plot and bubble chart for correlation analysis.
βœ“
Heatmap
Color-intensity matrix for comparing values across two dimensions.
βœ“
Treemap
Hierarchical area-proportional visualization.
βœ“
Waterfall
Running total visualization for variance analysis.
βœ“
Funnel & Pyramid
Funnel and pyramid charts for pipeline and hierarchy visualization.
βœ“
Gauge
Speedometer-style gauge for single KPI display.
βœ“
Box Plot
Statistical distribution visualization with quartiles and outliers.
βœ“
3D chart variants
Column, bar, pie, and scatter in full 3D rendering.
⊞Grid Display

A grid built for analysis

Freeze, resize, drill, and format. The pivot grid handles millions of cells with smooth scrolling and precise visual control.

Read the docs β†’
βœ“
Freeze rows
Sticky column header row that stays visible while scrolling vertically.
βœ“
Freeze columns
Sticky row header columns that stay visible while scrolling horizontally.
βœ“
Column resize
Drag column borders to resize. Double-click a border to auto-fit to content.
βœ“
Conditional formatting
Apply color scale, data bar, or icon set rules to value cells based on their numeric magnitude.
βœ“
Drill-through
Double-click any data cell to open a modal showing the underlying raw source rows.
βœ“
OLAP drill-through
Execute DRILLTHROUGH MDX queries for OLAP cubes with configurable max rows.
βœ“
Number format per field
Independent number formatting per value field: General, Number, Currency, Percentage.
βœ“
Negative number styles
Choose from 7 display options: minus sign, parentheses, red text, or combinations.
βœ“
Row style callbacks
Programmatically style entire rows based on their underlying data values.
βœ“
Cell style callbacks
Programmatically style individual cells based on column and row context.
βœ“
AI cell explain
Hover any cell to see an AI-powered explanation of the value in context.
βœ“
Expand / collapse hierarchy
Multi-level row/column headers can be expanded or collapsed independently.
πŸ€–AI Integration

Your data, understood by AI

Connect any LLM to get natural-language pivot configuration, narrative insights, anomaly detection, and cell explanations β€” all in one chat panel.

Read the docs β†’
βœ“
Natural language queries
Type "show revenue by region as a bar chart" and WPT configures the pivot automatically.
βœ“
OpenAI GPT-4o support
Connect GPT-4o-mini or GPT-4o with your API key. Best-in-class natural language pivot understanding.
βœ“
Anthropic Claude support
Use Claude 3.5 Sonnet or any Claude model via the Anthropic API.
βœ“
Google Gemini support
Connect Gemini 1.5 Flash or Pro via the Google Generative Language API.
βœ“
Custom OpenAI-compatible endpoints
Point WPT at any OpenAI-compatible API β€” local models, Azure OpenAI, DeepSeek, etc.
βœ“
Backend proxy support
Route all LLM calls through your own server to keep API keys off the client.
βœ“
Custom system prompt
Prepend a custom system prompt to every LLM request for domain-specific guidance.
βœ“
AI Insights
Generate a narrative summary of the currently displayed pivot data with one click.
βœ“
Cell value explanation
Click any cell to ask AI why that value is what it is, given the surrounding context.
βœ“
Anomaly detection
Client-side z-score outlier detection. No LLM required β€” free and private.
βœ“
Field catalog context
WPT automatically includes field names, types, and sample values as LLM context for better answers.
βœ“
Chat history
Full conversation history within the AI tab. Clear history with one API call.
</>Developer API

A developer-first component

Standard Web Component with a rich JavaScript API, TypeScript declarations, isolated event buses, and integration guides for every major framework.

Read the docs β†’
βœ“
Standard Web Component
Built on the customElements standard β€” no proprietary wrapper required. Works anywhere HTML runs.
βœ“
React integration
Use as a JSX element with a ref. Full TypeScript types for all methods and events.
βœ“
Vue 3 integration
Use directly in <template> with ref. Lifecycle hooks map naturally to WPT events.
βœ“
Angular integration
Register with CUSTOM_ELEMENTS_SCHEMA. Access via @ViewChild and nativeElement.
βœ“
Svelte integration
Use with bind:this for imperative access. Reactive data sync via onMount.
βœ“
TypeScript declarations
Full .d.ts types exported: WptOptions, WebPivotTableElement, all method signatures.
βœ“
Isolated event bus
Per-instance event bus β€” multiple WPT elements never cross-fire events.
βœ“
DOM CustomEvents
All events also dispatch as standard DOM CustomEvents for addEventListener() compatibility.
βœ“
Pivot state API
getPivotState() / configurePivot() for programmatic pivot read/write.
βœ“
Field catalog API
getFieldCatalog() returns structured field metadata ready for LLM context injection.
βœ“
CDN or npm
Load from https://cdn.webpivottable.com or install via npm. Single-file bundle, no dependencies to manage.
βœ“
WPT file API
generateWptString() / setWpt() for save/restore cycles with any storage backend.
🌐i18n

20 languages, zero config

Full internationalization with lazy-loaded locale files, runtime language switching, and self-hosting support.

Read the docs β†’
βœ“
English
Built-in default. No external file required.
βœ“
Chinese (Simplified)
Built-in. No external file required.
βœ“
German, French, Spanish
Loaded lazily from CDN on first use.
βœ“
Portuguese, Italian, Turkish
Loaded lazily from CDN on first use.
βœ“
Japanese, Korean
Loaded lazily from CDN on first use.
βœ“
Russian, Polish, Dutch, Swedish
Loaded lazily from CDN on first use.
βœ“
Arabic, Czech, Hungarian
Loaded lazily from CDN on first use.
βœ“
Romanian, Danish, Finnish
Loaded lazily from CDN on first use.
βœ“
Runtime locale switching
Switch language at any time with setLocale("fr") β€” no page reload needed.
βœ“
Self-hosted locale files
Set localeBaseUrl to serve locale JSON from your own CDN or server.
βœ“
Per-instance locale
Multiple WPT instances on the same page can each show a different language.
βœ“
Locale caching
Locale files are cached in memory β€” language switches are instantaneous after the first load.
🎨Theming

Beautiful in every color scheme

4 built-in presets plus complete CSS custom-property control β€” no global style pollution, no Shadow DOM limitations.

Read the docs β†’
βœ“
Default theme
Clean light theme with blue accents. Professional and neutral.
βœ“
Dark theme
Full dark mode with carefully balanced contrast ratios.
βœ“
Ocean theme
Teal and navy color palette for a modern, calm aesthetic.
βœ“
Forest theme
Green-toned palette for data-dense dashboards.
βœ“
Custom primary color
Override the accent/brand color to match your product.
βœ“
Custom background & panel colors
Set background, panel, secondary, and tertiary surface colors independently.
βœ“
Custom border & text colors
Fine-grained control over border and text colors at every level.
βœ“
Custom grid header colors
Set the pivot grid header row/column background and text colors separately from the UI chrome.
βœ“
Custom typography
Override font size and line height. Inherits font-family from the host page.
βœ“
Custom border radius
Control the roundness of buttons, inputs, and cards.
βœ“
Per-instance theming
Apply a different theme to each WPT instance on the same page.
βœ“
No CSS leakage
All styles are scoped inline β€” WPT never pollutes the global stylesheet.
β†—Export

Share your analysis everywhere

Export the pivot grid, chart, or raw source data to Excel, PDF, HTML, CSV, or PNG β€” all from the browser with no server round-trips.

Read the docs β†’
βœ“
Export grid to Excel (.xlsx)
Download the full pivot table as a formatted .xlsx Excel workbook.
βœ“
Export grid to PDF
Download the pivot table as a paginated PDF document.
βœ“
Export grid to HTML
Save the pivot table as a standalone self-contained HTML file.
βœ“
Print grid
Send the pivot table directly to the browser print dialog with proper pagination.
βœ“
Export chart as PNG
Download the current chart as a high-resolution PNG image.
βœ“
Export chart as PDF
Download the current chart as a PDF at its full rendered dimensions.
βœ“
Print chart
Print the chart in isolation (no surrounding UI chrome) via an iframe.
βœ“
Export source data to Excel
Download the raw unprocessed source data as a .xlsx file.
βœ“
Export source data to CSV
Download the raw source data as a .csv file.
βœ“
Print source data
Print the raw source data as a formatted HTML table.
βœ“
Export drill-through data
Export the drill-through result set (CSV or Excel) from the drill-through modal.
βœ“
WPT file save
Save the complete pivot state (layout + optional data) as a .wpt JSON file.

All features are available on every plan

No feature gating. The Community license includes 100% of WPT's functionality.
Paid licenses only add commercial rights and watermark removal.

11
Feature categories
130+
Individual features
20+
Chart types
20
UI languages
10
Aggregation functions
3
Data source modes

Ready to embed the most complete pivot table on the web?

Free for non-commercial use. Commercial licenses from $299 one-time.