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>
<p class='selector-container'>
Choose field separator for csv export:
<select name="separator" id="CSVFileSeparator">
<option value=",">,</option>
<option value=";">;</option>
<option value=":">:</option>
<option value="|">|</option>
<option value="/">/</option>
</select>
</p>
<div id="pivot-container"></div>
CSS
.selector-container {
border: none;
background: #fff;
color: #333;
text-transform: uppercase;
margin: 5px 0;
display: inline-block;
transition: all .3s;
font-weight: normal;
padding: 8px 10px;
font-size: 14px;
}
select {
padding: 8px;
font-size: 14px;
border: 1px solid #ccc;
border-radius: 4px;
background-color: #fff;
color: #333;
text-align: center;
}
option {
background-color: #fff;
color: #333;
text-align: center;
cursor: pointer;
}
JavaScript
const pivot = new Flexmonster({
container: "#pivot-container",
componentFolder: "https://cdn.flexmonster.com/",
toolbar: true,
beforetoolbarcreated: customizeToolbar,
report: "https://cdn.flexmonster.com/reports/report.json"
});
function customizeToolbar(toolbar) {
let tabs = toolbar.getTabs();
toolbar.getTabs = function() {
let exportTab = tabs.find(tab => tab.id == "fm-tab-export");
let exportToCSVTab = exportTab.menu.find(tab => tab.id == "fm-tab-export-csv");
exportToCSVTab.handler = () => {
const fieldSeparator = document.getElementById('CSVFileSeparator').value || ',';
this.pivot.exportTo("csv", {
fieldSeparator: fieldSeparator
})
}
return tabs;
}
}