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;
  }
}