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/",
  toolbar: true,
  beforetoolbarcreated: customizeToolbar,
  report: {
    dataSource: {
      filename: "data/data.csv"
    },
    options: {
      configuratorActive: false
    },
    slice: {
      rows: [{
        uniqueName: "Country"
      }],
      columns: [{
        uniqueName: "Category"
      }],
      measures: [{
        uniqueName: "Price"
      }],
    }
  }
});

function customizeToolbar(toolbar) {
  let tabs = toolbar.getTabs();
  toolbar.getTabs = function() {
    const exportTab = tabs.find(tab => tab.id == "fm-tab-export");
    exportTab.menu.find(tab => tab.id == "fm-tab-export-pdf").handler = exportToPDFHandler;
    return tabs;
  }
}

function exportToPDFHandler() {
  const params = {
    filename: 'flexmonster',
    header: "<div><img src='" + base64img + "'></div><p style='font-size:50px;text-align:center;'>Invoice</p>",
    footer: "<p style='text-align:center;color:orange;'> Table Footer</p>",
  };
  flexmonster.exportTo('pdf', params);
}


base64img = '...