JSFiddle - React, Tailwind, and code Playground

Export and print

by Flexmonster Pivot Table

HTML

<script src="https://cdn.flexmonster.com/flexmonster.js"></script>

<button onclick="excel()">Export to Excel</button>

<div id="pivot-container"></div>

JavaScript

let pivot = new Flexmonster({
  container: "pivot-container",
  componentFolder: "https://cdn.flexmonster.com/",
  report: {
    dataSource: {
      "type": "api",
      "url": "https://olap.flexmonster.com:9500",
      "index": "fm-product-sales"
    },
    slice: {
      columns: [
        {
          uniqueName: "Category",
        },
        {
          uniqueName: "Size",
        },
        {
          uniqueName: "Color",
        }
      ],
    },
    options: {
      grid: {
        type: "flat",
      },
    },
  },
})

function excel() {
  let oldSlice = pivot.getReport().slice;
  let newSlice = JSON.parse(JSON.stringify(oldSlice));
  newSlice.columns.push({ uniqueName: "Country" });

  pivot.on("reportcomplete", function () {
    pivot.off("reportcomplete");
    pivot.exportTo("excel");
    pivot.on("exportcomplete", function () {
      pivot.off("exportcomplete");
      pivot.runQuery(oldSlice);
    })
  })

  pivot.runQuery(newSlice);
}