JSFiddle - React, Tailwind, and code Playground

Export and print

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>
<script src="https://unpkg.com/downloadjs@1.4.7"></script>

<button onclick="exportCsv()">
  Export to CSV
</button>

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

JavaScript

const pivot = new Flexmonster({
  container: "pivotContainer",
  componentFolder: "https://cdn.flexmonster.com/",
  height: 350,
  report: {
    options: {
      grid: {
        type: "flat"
      }
    },
    dataSource: {
      data: getData()
    },
    slice: {
      rows: [{
          uniqueName: "Country"
        },
        {
          uniqueName: "Link"
        }
      ],
      columns: [{
        uniqueName: "[Measures]"
      }],
      measures: [{
        uniqueName: "Price",
        aggregation: "sum"
      }]
    }
  }
});

function exportCsv() {
  pivot.exportTo(
    "csv", {
      destinationType: "plain"
    },
    result => {
      //preprocess the data
      const data = result.data.replaceAll("'", "");
      //save it to the file
      download(data, "pivot.csv", "text/csv")
    },
  );
}

function getData() {
  return [{
      "Color": "green",
      "Country": "Canada",
      "State": "Ontario",
      "City": "Toronto",
      "Price": 174,
      "Quantity": 22,
      "Link": "=HYPERLINK(`scheme://domain.top-level-domain/path?query#fragment`)"
    },
    {
      "Color": "red",
      "Country": "USA",
      "State": "California",
      "City": "Los Angeles",
      "Price": 166,
      "Quantity": 19,
      "Link": "=HYPERLINK(`scheme://domain.top-level-domain/path?query#fragment`)"
    },
    {
      "Color": "blue",
      "Country": "USA",
      "State": "Florida",
      "City": "Tallahassee",
      "Price": 215,
      "Quantity": 25,
      "Link": "=HYPERLINK(`scheme://domain.top-level-domain/path?query#fragment`)"
    },
    {
      "Color": "black",
      "Country": "Canada",
      "State": "Quebec",
      "City": "Montreal",
      "Price": 194,
      "Quantity": 15,
      "Link": "=HYPERLINK(`scheme://domain.top-level-domain/path?query#fragment`)"
    }
  ]
}