JSFiddle - React, Tailwind, and code Playground
by Flexmonster Pivot Table
HTML
<link rel="stylesheet" href="https://s3.amazonaws.com/flexmonster/2.3/demo.css">
<script src="https://cdn.flexmonster.com/flexmonster.js"></script>
<div id="pivot-container"></div>
JavaScript
let pivot = new Flexmonster({
container: "#pivot-container",
componentFolder: "https://cdn.flexmonster.com/",
height: 550,
toolbar: true,
report: {
dataSource: {
"filename": "data/data.csv"
},
slice: {
"rows": [{
"uniqueName": "Category"
},
{
"uniqueName": "Country"
},
{
"uniqueName": "Destination"
}
],
"columns": [{
"uniqueName": "Color"
},
{
"uniqueName": "[Measures]"
}
],
"measures": [{
"uniqueName": "Price",
"aggregation": "sum"
}]
}
},
beforetoolbarcreated: customizeToolbar
});
function customizeToolbar(toolbar) {
let tabs = toolbar.getTabs();
toolbar.getTabs = function() {
let exportTab = tabs.find(tab => tab.id == "fm-tab-export");
if (!exportTab) return tabs;
let exportToExcelTab = exportTab.menu.find(tab => tab.id == "fm-tab-export-excel");
exportToExcelTab.handler = () => {
exportToExcel();
}
return tabs;
}
}
function exportToExcel() {
const reportCopy = pivot.getReport()
pivot.on("aftergriddraw", () => {
pivot.off("aftergriddraw");
pivot.exportTo('excel', null, () => {
pivot.setReport(reportCopy)
});
});
pivot.expandAllData();
}