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`)"
}
]
}