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>

<button onclick="formatAll()">
  Clear all formatting
</button>

<button onclick="formatPrice()">
  Clear formatting of the "Price"
</button>

<div id="pivotContainer"></div>

JavaScript

var pivot = new Flexmonster({
  container: "pivotContainer",
  componentFolder: "https://cdn.flexmonster.com/",
  toolbar: true,
  report: {
    dataSource: {
      filename: "data/data.csv"
    },
    "slice": {
      "rows": [{
        "uniqueName": "Category"
      }],
      "columns": [{
        "uniqueName": "[Measures]"
      }],
      "measures": [{
          "uniqueName": "Price",
          "aggregation": "sum",
          "format": "dollar"
        },
        {
          "uniqueName": "Quantity",
          "aggregation": "sum",
          "format": "pieces"
        },
        {
          "uniqueName": "Discount",
          "aggregation": "sum",
          "format": "dollar"
        }
      ]
    },
    "formats": [{
        "name": "dollar",
        "currencySymbol": "$"
      },
      {
        "name": "pieces",
        "currencySymbol": " pieces",
        "positiveCurrencyFormat": "1$"
      }
    ]
  }
});

function formatAll() {
  for (let measure of flexmonster.getMeasures())
    flexmonster.setFormat({}, measure.uniqueName)
  flexmonster.refresh()
}

function formatPrice() {
  flexmonster.setFormat({}, "Price")
  flexmonster.refresh()
}